home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Util / T-Te / taskdemo.cpt / taskdemo / taskdemo.c next >
MacBinary  |  1987-09-07  |  17.5 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: taskdemo.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Mon Sep 7 13:52:22 1987, modified Mon Sep 7 13:52:22 1987, creator Think C, type ASCII, 17394 bytes "taskdemo.c" , at 0x4472 348 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 0a 74 61 73 6b 64 65 | 6d 6f 2e 63 00 00 00 00 |..taskde|mo.c....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 43 f2 00 | 00 01 5c 9d 68 a2 d6 9d |.....C..|..\.h...|
|00000060| 68 a2 d6 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |h.......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 47 44 00 00 |........|....GD..|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 0d 0d 09 46 69 6c | 65 20 4e 61 6d 65 3a 09 |**...Fil|e Name:.|
|000000d0| 74 61 73 6b 64 65 6d 6f | 2e 63 0d 0d 09 46 75 6e |taskdemo|.c...Fun|
|000000e0| 63 74 69 6f 6e 3a 09 09 | 54 68 69 73 20 70 72 6f |ction:..|This pro|
|000000f0| 67 72 61 6d 20 64 65 6d | 6f 6e 73 74 72 61 74 65 |gram dem|onstrate|
|00000100| 73 20 68 6f 77 20 74 6f | 20 75 73 65 20 74 68 65 |s how to| use the|
|00000110| 20 54 61 73 6b 65 72 0d | 09 09 09 09 09 09 09 6d | Tasker.|.......m|
|00000120| 75 6c 74 69 74 61 73 6b | 69 6e 67 20 6c 69 62 72 |ultitask|ing libr|
|00000130| 61 72 79 20 28 71 2e 6c | 69 62 2c 20 74 61 73 6b |ary (q.l|ib, task|
|00000140| 2e 6c 69 62 29 20 74 6f | 20 72 75 6e 20 0d 09 09 |.lib) to| run ...|
|00000150| 09 09 09 09 09 6d 75 6c | 74 69 70 6c 65 20 77 69 |.....mul|tiple wi|
|00000160| 6e 64 6f 77 73 2e 20 55 | 70 20 74 6f 20 34 20 74 |ndows. U|p to 4 t|
|00000170| 61 73 6b 73 20 6d 61 79 | 20 62 65 20 72 75 6e 6e |asks may| be runn|
|00000180| 69 6e 67 0d 09 09 09 09 | 09 09 09 63 6f 6e 63 75 |ing.....|...concu|
|00000190| 72 72 65 6e 74 6c 79 2c | 20 65 61 63 68 20 77 69 |rrently,| each wi|
|000001a0| 74 68 20 69 74 27 73 20 | 6f 77 6e 20 77 69 6e 64 |th it's |own wind|
|000001b0| 6f 77 2e 20 54 68 65 20 | 75 73 65 72 0d 09 09 09 |ow. The |user....|
|000001c0| 09 09 09 09 6d 61 79 20 | 73 65 6c 65 63 74 20 28 |....may |select (|
|000001d0| 66 72 6f 6d 20 61 20 6d | 65 6e 75 29 20 77 68 69 |from a m|enu) whi|
|000001e0| 63 68 20 74 79 70 65 20 | 6f 66 20 74 61 73 6b 20 |ch type |of task |
|000001f0| 74 6f 20 0d 20 20 09 09 | 09 09 09 09 64 69 73 70 |to . ..|....disp|
|00000200| 6c 61 79 20 69 6e 20 65 | 61 63 68 20 77 69 6e 64 |lay in e|ach wind|
|00000210| 6f 77 2e 20 54 68 65 72 | 65 20 61 20 33 20 74 79 |ow. Ther|e a 3 ty|
|00000220| 70 65 73 20 6f 66 20 74 | 61 73 6b 73 20 74 6f 0d |pes of t|asks to.|
|00000230| 20 20 09 09 09 09 09 09 | 63 68 6f 6f 73 65 20 66 | ......|choose f|
|00000240| 72 6f 6d 20 2d 20 61 20 | 62 6f 75 6e 63 69 6e 67 |rom - a |bouncing|
|00000250| 20 62 61 6c 6c 2c 20 61 | 20 22 7a 6f 6f 6d 69 6e | ball, a| "zoomin|
|00000260| 67 22 20 72 65 63 74 61 | 6e 67 6c 65 2c 0d 20 20 |g" recta|ngle,. |
|00000270| 09 09 09 09 09 09 61 6e | 64 20 73 63 72 6f 6c 6c |......an|d scroll|
|00000280| 69 6e 67 20 74 65 78 74 | 2e 0d 09 0d 09 09 09 09 |ing text|........|
|00000290| 09 09 09 49 6e 20 61 64 | 64 69 74 69 6f 6e 20 74 |...In ad|dition t|
|000002a0| 6f 20 62 65 69 6e 67 20 | 61 20 6d 75 6c 74 69 74 |o being |a multit|
|000002b0| 61 73 6b 69 6e 67 20 65 | 78 61 6d 70 6c 65 2c 20 |asking e|xample, |
|000002c0| 74 68 69 73 20 0d 09 09 | 09 09 09 09 09 70 72 6f |this ...|.....pro|
|000002d0| 67 72 61 6d 20 61 6c 73 | 6f 20 73 68 6f 77 73 20 |gram als|o shows |
|000002e0| 63 6f 64 65 20 72 65 75 | 73 75 61 62 69 6c 69 74 |code reu|suabilit|
|000002f0| 79 2e 20 54 68 65 20 75 | 73 65 72 20 6d 61 79 20 |y. The u|ser may |
|00000300| 73 65 6c 65 63 74 0d 09 | 09 09 09 09 09 09 74 68 |select..|......th|
|00000310| 65 20 73 61 6d 65 20 74 | 61 73 6b 20 74 79 70 65 |e same t|ask type|
|00000320| 20 66 6f 72 20 65 61 63 | 68 20 77 69 6e 64 6f 77 | for eac|h window|
|00000330| 2c 20 62 75 74 20 6f 6e | 6c 79 20 6f 6e 65 20 63 |, but on|ly one c|
|00000340| 6f 70 79 0d 09 09 09 09 | 09 09 09 6f 66 20 74 68 |opy.....|...of th|
|00000350| 65 20 74 61 73 6b 20 63 | 6f 64 65 20 69 73 20 6e |e task c|ode is n|
|00000360| 65 65 64 65 64 2e 20 54 | 68 69 73 20 69 73 20 69 |eeded. T|his is i|
|00000370| 6e 68 65 72 65 6e 74 20 | 74 6f 20 0d 09 09 09 09 |nherent |to .....|
|00000380| 09 09 09 6d 75 6c 74 69 | 74 61 73 6b 69 6e 67 20 |...multi|tasking |
|00000390| 73 79 73 74 65 6d 73 20 | 73 69 6e 63 65 20 65 61 |systems |since ea|
|000003a0| 63 68 20 74 61 73 6b 20 | 69 73 20 67 69 76 65 6e |ch task |is given|
|000003b0| 20 69 74 27 73 0d 09 09 | 09 09 09 09 09 6f 77 6e | it's...|.....own|
|000003c0| 20 73 74 61 63 6b 2e 20 | 50 72 6f 62 6c 65 6d 73 | stack. |Problems|
|000003d0| 20 6d 61 79 20 61 72 69 | 73 65 2c 20 74 68 6f 75 | may ari|se, thou|
|000003e0| 67 68 2c 20 69 66 20 74 | 68 65 20 74 61 73 6b 0d |gh, if t|he task.|
|000003f0| 09 09 09 09 09 09 09 6d | 6f 64 69 66 69 65 73 20 |.......m|odifies |
|00000400| 67 6c 6f 62 61 6c 20 64 | 61 74 61 20 28 73 69 6e |global d|ata (sin|
|00000410| 63 65 20 62 6f 74 68 20 | 69 6e 73 74 61 6e 63 65 |ce both |instance|
|00000420| 73 20 6f 66 20 74 68 65 | 0d 09 09 09 09 09 09 09 |s of the|........|
|00000430| 74 61 73 6b 20 77 69 6c | 6c 20 73 68 61 72 65 20 |task wil|l share |
|00000440| 74 68 65 20 64 61 74 61 | 29 2e 0d 09 09 09 09 09 |the data|).......|
|00000450| 09 09 0d 09 43 6f 6e 74 | 65 6e 74 73 3a 09 09 6e |....Cont|ents:..n|
|00000460| 65 77 42 75 74 74 6f 6e | 28 29 09 09 09 09 72 65 |ewButton|()....re|
|00000470| 70 6c 61 63 65 6d 65 6e | 74 20 66 6f 72 20 41 70 |placemen|t for Ap|
|00000480| 70 6c 65 27 73 20 42 75 | 74 74 6f 6e 28 29 20 72 |ple's Bu|tton() r|
|00000490| 6f 75 74 69 6e 65 0d 09 | 20 20 20 20 09 09 09 09 |outine..| ....|
|000004a0| 09 09 09 09 09 09 09 09 | 09 09 74 6f 20 61 6c 6c |........|..to all|
|000004b0| 6f 77 20 74 61 73 6b 20 | 73 75 73 70 65 6e 73 69 |ow task |suspensi|
|000004c0| 6f 6e 20 77 68 69 6c 65 | 20 74 68 65 20 62 75 74 |on while| the but|
|000004d0| 74 6f 6e 0d 09 20 20 20 | 20 09 09 09 09 09 09 09 |ton.. | .......|
|000004e0| 09 09 09 09 09 09 09 69 | 73 20 64 6f 77 6e 0d 09 |.......i|s down..|
|000004f0| 09 09 09 09 09 09 6d 65 | 6e 75 44 6f 77 6e 28 29 |......me|nuDown()|
|00000500| 09 09 09 09 22 70 61 74 | 63 68 20 74 6f 20 41 70 |...."pat|ch to Ap|
|00000510| 70 6c 65 27 73 20 6d 65 | 6e 75 20 6d 61 6e 61 67 |ple's me|nu manag|
|00000520| 65 72 0d 09 09 09 09 09 | 09 09 6d 65 6e 75 55 70 |er......|..menuUp|
|00000530| 28 29 09 09 09 09 09 22 | 70 61 74 63 68 22 20 74 |()....."|patch" t|
|00000540| 6f 20 41 70 70 6c 65 27 | 73 20 6d 65 6e 75 20 6d |o Apple'|s menu m|
|00000550| 61 6e 61 67 65 72 0d 09 | 09 09 09 09 09 09 0d 20 |anager..|....... |
|00000560| 20 20 20 09 09 09 09 09 | 6d 79 53 77 61 70 50 72 | .....|mySwapPr|
|00000570| 6f 63 28 29 20 20 20 20 | 20 20 67 65 6e 65 72 69 |oc() | generi|
|00000580| 63 20 73 77 61 70 20 70 | 72 6f 63 65 64 75 72 65 |c swap p|rocedure|
|00000590| 20 74 6f 20 73 61 76 65 | 20 61 6e 64 20 72 65 73 | to save| and res|
|000005a0| 74 6f 72 65 20 0d 20 20 | 20 20 09 09 09 09 09 20 |tore . | ..... |
|000005b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000005c0| 20 09 63 75 72 72 65 6e | 74 20 77 69 6e 64 6f 77 | .curren|t window|
|000005d0| 20 77 68 65 6e 20 73 77 | 69 74 63 68 69 6e 67 20 | when sw|itching |
|000005e0| 74 61 73 6b 73 0d 20 20 | 20 20 09 09 09 09 09 62 |tasks. | .....b|
|000005f0| 6f 75 6e 63 65 72 28 29 | 20 20 20 20 20 20 20 20 |ouncer()| |
|00000600| 20 62 6f 75 6e 63 69 6e | 67 20 62 61 6c 6c 20 72 | bouncin|g ball r|
|00000610| 6f 75 74 69 6e 65 20 28 | 54 41 53 4b 29 0d 20 20 |outine (|TASK). |
|00000620| 20 09 09 09 09 09 09 7a | 6f 6f 6d 65 72 28 29 20 | ......z|oomer() |
|00000630| 20 20 20 20 20 20 20 20 | 20 7a 6f 6f 6d 69 6e 67 | | zooming|
|00000640| 20 72 65 63 74 61 6e 67 | 6c 65 20 72 6f 75 74 69 | rectang|le routi|
|00000650| 6e 65 20 28 54 41 53 4b | 29 0d 20 20 20 09 09 09 |ne (TASK|). ...|
|00000660| 09 09 09 77 72 69 74 65 | 53 74 72 69 6e 67 28 29 |...write|String()|
|00000670| 09 09 09 77 72 69 74 65 | 73 20 61 20 73 74 72 69 |...write|s a stri|
|00000680| 6e 67 20 74 6f 20 61 20 | 77 69 6e 64 6f 77 0d 09 |ng to a |window..|
|00000690| 09 09 09 09 09 09 73 63 | 72 6f 6c 6c 65 72 28 29 |......sc|roller()|
|000006a0| 20 20 20 20 20 20 20 20 | 73 63 72 6f 6c 6c 69 6e | |scrollin|
|000006b0| 67 20 74 65 78 74 20 72 | 6f 75 74 69 6e 65 20 28 |g text r|outine (|
|000006c0| 54 41 53 4b 29 0d 09 09 | 09 09 09 09 09 6d 61 73 |TASK)...|.....mas|
|000006d0| 74 65 72 28 29 20 20 20 | 20 20 20 20 20 09 68 61 |ter() | .ha|
|000006e0| 6e 64 6c 65 20 75 73 65 | 72 20 69 6e 74 65 72 66 |ndle use|r interf|
|000006f0| 61 63 65 20 28 54 41 53 | 4b 29 0d 20 20 20 20 09 |ace (TAS|K). .|
|00000700| 09 09 09 09 0d 20 20 20 | 20 09 09 09 09 09 73 65 |..... | .....se|
|00000710| 74 55 70 4d 65 6e 75 73 | 28 29 09 09 09 69 6e 69 |tUpMenus|()...ini|
|00000720| 74 69 61 6c 69 7a 65 20 | 74 68 65 20 6d 65 6e 75 |tialize |the menu|
|00000730| 73 0d 20 20 20 20 09 09 | 09 09 09 64 6f 45 76 65 |s. ..|...doEve|
|00000740| 6e 74 28 29 09 09 09 09 | 09 68 61 6e 64 6c 65 20 |nt()....|.handle |
|00000750| 75 73 65 72 20 65 76 65 | 6e 74 73 0d 20 20 20 20 |user eve|nts. |
|00000760| 09 09 09 09 09 64 6f 4d | 65 6e 75 28 29 09 09 09 |.....doM|enu()...|
|00000770| 09 09 68 61 6e 64 6c 65 | 20 6d 65 6e 75 20 73 65 |..handle| menu se|
|00000780| 6c 65 63 74 69 6f 6e 73 | 0d 20 20 20 20 09 09 09 |lections|. ...|
|00000790| 09 09 64 6f 46 69 6c 65 | 28 29 09 09 09 09 09 68 |..doFile|().....h|
|000007a0| 61 6e 64 6c 65 20 22 46 | 69 6c 65 22 20 6d 65 6e |andle "F|ile" men|
|000007b0| 75 20 73 65 6c 65 63 74 | 69 6f 6e 73 0d 20 20 20 |u select|ions. |
|000007c0| 20 09 09 09 09 09 6d 61 | 69 6e 28 29 09 09 09 09 | .....ma|in()....|
|000007d0| 09 09 64 6f 20 4d 61 63 | 20 69 6e 69 74 69 61 6c |..do Mac| initial|
|000007e0| 69 7a 61 74 69 6f 6e 2c | 20 73 74 61 72 74 20 75 |ization,| start u|
|000007f0| 70 20 74 68 65 20 6d 61 | 73 74 65 72 20 74 61 73 |p the ma|ster tas|
|00000800| 6b 0d 0d 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |k..*****|********|
|00000810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000820| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000830| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000840| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2f 0d 0d 2f 2a |********|***/../*|
|00000850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 20 |--------|------- |
|00000860| 45 78 74 65 72 6e 61 6c | 20 52 65 66 65 72 65 6e |External| Referen|
|00000870| 63 65 73 20 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ces ----|--------|
|00000880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00000890| 0d 0d 23 69 6e 63 6c 75 | 64 65 20 22 4d 65 6d 6f |..#inclu|de "Memo|
|000008a0| 72 79 4d 67 72 2e 68 22 | 0d 23 69 6e 63 6c 75 64 |ryMgr.h"|.#includ|
|000008b0| 65 20 22 57 69 6e 64 6f | 77 4d 67 72 2e 68 22 0d |e "Windo|wMgr.h".|
|000008c0| 23 69 6e 63 6c 75 64 65 | 20 22 46 6f 6e 74 4d 67 |#include| "FontMg|
|000008d0| 72 2e 48 22 0d 23 69 6e | 63 6c 75 64 65 20 22 45 |r.H".#in|clude "E|
|000008e0| 76 65 6e 74 4d 67 72 2e | 68 22 0d 23 69 6e 63 6c |ventMgr.|h".#incl|
|000008f0| 75 64 65 20 22 44 65 73 | 6b 4d 67 72 2e 68 22 0d |ude "Des|kMgr.h".|
|00000900| 23 69 6e 63 6c 75 64 65 | 20 22 4d 65 6e 75 4d 67 |#include| "MenuMg|
|00000910| 72 2e 68 22 0d 23 69 6e | 63 6c 75 64 65 20 22 73 |r.h".#in|clude "s|
|00000920| 74 64 69 6f 2e 68 22 0d | 23 69 6e 63 6c 75 64 65 |tdio.h".|#include|
|00000930| 20 22 74 61 73 6b 2e 68 | 22 0d 0d 2f 2a 2d 2d 2d | "task.h|"../*---|
|00000940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 20 47 6c 6f |--------|---- Glo|
|00000950| 62 61 6c 20 56 61 72 69 | 61 62 6c 65 73 20 2d 2d |bal Vari|ables --|
|00000960| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2a 2f 0d 0d |--------|----*/..|
|00000980| 63 68 61 72 20 20 73 74 | 72 69 6e 67 31 5b 5d 20 |char st|ring1[] |
|00000990| 3d 20 22 5c 70 4d 75 6c | 74 69 74 61 73 6b 69 6e |= "\pMul|titaskin|
|000009a0| 67 22 3b 0d 63 68 61 72 | 20 20 73 74 72 69 6e 67 |g";.char| string|
|000009b0| 32 5b 5d 20 3d 20 22 5c | 70 4d 75 6c 74 69 74 61 |2[] = "\|pMultita|
|000009c0| 73 6b 69 6e 67 20 69 73 | 22 3b 0d 63 68 61 72 20 |sking is|";.char |
|000009d0| 20 73 74 72 69 6e 67 33 | 5b 5d 20 3d 20 22 5c 70 | string3|[] = "\p|
|000009e0| 4d 75 6c 74 69 74 61 73 | 6b 69 6e 67 20 69 73 20 |Multitas|king is |
|000009f0| 66 75 6e 22 3b 0d 0d 2f | 2a 20 20 20 20 20 20 4d |fun";../|* M|
|00000a00| 65 6e 75 20 49 44 73 20 | 20 20 20 20 2a 2f 0d 0d |enu IDs | */..|
|00000a10| 23 64 65 66 69 6e 65 20 | 41 50 50 4c 45 5f 49 44 |#define |APPLE_ID|
|00000a20| 09 09 31 32 38 0d 23 64 | 65 66 69 6e 65 20 46 49 |..128.#d|efine FI|
|00000a30| 4c 45 5f 49 44 09 09 09 | 31 32 39 0d 23 64 65 66 |LE_ID...|129.#def|
|00000a40| 69 6e 65 20 45 44 49 54 | 5f 49 44 09 09 09 31 33 |ine EDIT|_ID...13|
|00000a50| 30 0d 23 64 65 66 69 6e | 65 20 54 41 53 4b 54 59 |0.#defin|e TASKTY|
|00000a60| 50 45 5f 49 44 09 31 33 | 31 0d 0d 2f 2a 20 09 09 |PE_ID.13|1../* ..|
|00000a70| 4d 65 6e 75 20 69 6e 64 | 69 63 65 73 20 20 20 20 |Menu ind|ices |
|00000a80| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 41 50 50 4c |*/..#def|ine APPL|
|00000a90| 45 09 09 09 09 09 30 0d | 23 64 65 66 69 6e 65 20 |E.....0.|#define |
|00000aa0| 46 49 4c 45 09 09 09 09 | 09 31 0d 23 64 65 66 69 |FILE....|.1.#defi|
|00000ab0| 6e 65 20 45 44 49 54 09 | 09 09 09 09 32 0d 23 64 |ne EDIT.|....2.#d|
|00000ac0| 65 66 69 6e 65 20 54 41 | 53 4b 54 59 50 45 09 09 |efine TA|SKTYPE..|
|00000ad0| 09 33 0d 0d 23 64 65 66 | 69 6e 65 20 4e 55 4d 5f |.3..#def|ine NUM_|
|00000ae0| 4d 45 4e 55 53 20 09 09 | 34 0d 0d 2f 2a 20 46 49 |MENUS ..|4../* FI|
|00000af0| 4c 45 20 6d 65 6e 75 20 | 69 74 65 6d 73 20 20 20 |LE menu |items |
|00000b00| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 4e 45 57 09 |*/..#def|ine NEW.|
|00000b10| 09 09 09 09 09 31 0d 23 | 64 65 66 69 6e 65 20 4f |.....1.#|define O|
|00000b20| 50 45 4e 09 09 09 09 09 | 32 0d 23 64 65 66 69 6e |PEN.....|2.#defin|
|00000b30| 65 20 43 4c 4f 53 45 09 | 09 09 09 09 34 0d 23 64 |e CLOSE.|....4.#d|
|00000b40| 65 66 69 6e 65 20 53 41 | 56 45 09 09 09 09 09 35 |efine SA|VE.....5|
|00000b50| 0d 23 64 65 66 69 6e 65 | 20 53 41 56 45 5f 41 53 |.#define| SAVE_AS|
|00000b60| 09 09 09 09 36 0d 23 64 | 65 66 69 6e 65 20 51 55 |....6.#d|efine QU|
|00000b70| 49 54 09 09 09 09 20 20 | 38 0d 0d 2f 2a 20 45 44 |IT.... |8../* ED|
|00000b80| 49 54 20 6d 65 6e 75 20 | 69 74 65 6d 73 20 20 20 |IT menu |items |
|00000b90| 2a 2f 0d 0d 23 64 65 66 | 69 6e 65 20 55 4e 44 4f |*/..#def|ine UNDO|
|00000ba0| 09 09 09 09 20 09 31 0d | 23 64 65 66 69 6e 65 20 |.... .1.|#define |
|00000bb0| 43 55 54 09 09 09 09 09 | 09 33 0d 23 64 65 66 69 |CUT.....|.3.#defi|
|00000bc0| 6e 65 20 43 4f 50 59 09 | 09 09 09 09 34 0d 23 64 |ne COPY.|....4.#d|
|00000bd0| 65 66 69 6e 65 20 50 41 | 53 54 45 09 09 09 09 09 |efine PA|STE.....|
|00000be0| 35 0d 23 64 65 66 69 6e | 65 20 43 4c 45 41 52 09 |5.#defin|e CLEAR.|
|00000bf0| 09 09 09 09 36 0d 0d 2f | 2a 20 54 41 53 4b 54 59 |....6../|* TASKTY|
|00000c00| 50 45 20 6d 65 6e 75 20 | 69 74 65 6d 73 20 20 2a |PE menu |items *|
|00000c10| 2f 0d 0d 23 64 65 66 69 | 6e 65 20 42 4f 55 4e 43 |/..#defi|ne BOUNC|
|00000c20| 45 52 09 09 09 09 31 0d | 23 64 65 66 69 6e 65 20 |ER....1.|#define |
|00000c30| 5a 4f 4f 4d 45 52 09 09 | 09 09 32 0d 23 64 65 66 |ZOOMER..|..2.#def|
|00000c40| 69 6e 65 20 53 43 52 4f | 4c 4c 45 52 09 09 09 33 |ine SCRO|LLER...3|
|00000c50| 0d 0d 23 64 65 66 69 6e | 65 20 4d 41 58 54 41 53 |..#defin|e MAXTAS|
|00000c60| 4b 54 59 50 45 53 09 34 | 0d 0d 4d 65 6e 75 48 61 |KTYPES.4|..MenuHa|
|00000c70| 6e 64 6c 65 09 6d 65 6e | 75 73 5b 4e 55 4d 5f 4d |ndle.men|us[NUM_M|
|00000c80| 45 4e 55 53 5d 3b 0d 0d | 69 6e 74 09 74 61 73 6b |ENUS];..|int.task|
|00000c90| 5f 74 79 70 65 09 3d 09 | 42 4f 55 4e 43 45 52 3b |_type.=.|BOUNCER;|
|00000ca0| 0d 0d 23 64 65 66 69 6e | 65 20 4d 41 58 54 41 53 |..#defin|e MAXTAS|
|00000cb0| 4b 53 20 35 0d 69 6e 74 | 20 6e 75 6d 5f 74 61 73 |KS 5.int| num_tas|
|00000cc0| 6b 73 20 3d 20 30 3b 0d | 0d 2f 2a 20 57 69 6e 64 |ks = 0;.|./* Wind|
|00000cd0| 6f 77 20 52 65 63 74 61 | 6e 67 6c 65 73 20 2a 2f |ow Recta|ngles */|
|00000ce0| 0d 0d 52 65 63 74 20 20 | 74 61 73 6b 52 65 63 74 |..Rect |taskRect|
|00000cf0| 5b 4d 41 58 54 41 53 4b | 53 5d 20 3d 20 7b 0d 09 |[MAXTASK|S] = {..|
|00000d00| 7b 20 20 30 2c 20 20 20 | 30 2c 20 20 20 30 2c 20 |{ 0, |0, 0, |
|00000d10| 20 20 30 7d 2c 0d 09 7b | 20 34 31 2c 20 20 20 35 | 0},..{| 41, 5|
|00000d20| 2c 20 31 37 34 2c 20 31 | 36 38 7d 2c 0d 09 7b 20 |, 174, 1|68},..{ |
|00000d30| 34 31 2c 20 33 34 35 2c | 20 31 37 34 2c 20 35 30 |41, 345,| 174, 50|
|00000d40| 38 7d 2c 0d 09 7b 32 30 | 36 2c 20 20 20 35 2c 20 |8},..{20|6, 5, |
|00000d50| 33 33 39 2c 20 31 37 33 | 7d 2c 0d 09 7b 32 30 36 |339, 173|},..{206|
|00000d60| 2c 20 33 34 35 2c 20 33 | 33 39 2c 20 35 30 38 7d |, 345, 3|39, 508}|
|00000d70| 0d 7d 3b 0d 0d 2f 2a 20 | 42 75 74 74 6f 6e 28 29 |.};../* |Button()|
|00000d80| 20 74 72 61 70 20 73 74 | 75 66 66 20 2a 2f 0d 0d | trap st|uff */..|
|00000d90| 23 64 65 66 69 6e 65 20 | 42 55 54 54 4f 4e 5f 54 |#define |BUTTON_T|
|00000da0| 52 41 50 5f 4e 4f 20 30 | 78 41 39 37 34 0d 6c 6f |RAP_NO 0|xA974.lo|
|00000db0| 6e 67 20 62 75 74 74 6f | 6e 41 64 64 72 3b 0d 0d |ng butto|nAddr;..|
|00000dc0| 2f 2a 20 6d 65 6e 75 20 | 70 61 74 63 68 20 72 6f |/* menu |patch ro|
|00000dd0| 75 74 69 6e 65 20 73 74 | 75 66 66 20 2a 2f 0d 0d |utine st|uff */..|
|00000de0| 57 69 6e 64 6f 77 52 65 | 63 6f 72 64 20 6d 65 6e |WindowRe|cord men|
|00000df0| 75 57 69 6e 64 52 65 63 | 3b 0d 57 69 6e 64 6f 77 |uWindRec|;.Window|
|00000e00| 50 74 72 20 09 20 6d 65 | 6e 75 57 69 6e 64 6f 77 |Ptr . me|nuWindow|
|00000e10| 20 3d 20 30 3b 0d 52 65 | 63 74 20 20 20 20 20 20 | = 0;.Re|ct |
|00000e20| 09 20 6f 6c 64 4d 65 6e | 75 52 65 63 74 20 3d 20 |. oldMen|uRect = |
|00000e30| 7b 30 2c 20 30 2c 20 30 | 2c 20 30 7d 3b 0d 0d 2f |{0, 0, 0|, 0};../|
|00000e40| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|00000e50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000e80| 2d 0d 20 20 20 20 6e 65 | 77 42 75 74 74 6f 6e 28 |-. ne|wButton(|
|00000e90| 29 0d 20 20 20 20 0d 20 | 20 20 20 54 68 69 73 20 |). . | This |
|00000ea0| 72 6f 75 74 69 6e 65 20 | 69 6e 74 65 72 63 65 70 |routine |intercep|
|00000eb0| 74 73 20 74 68 65 20 6e | 6f 72 6d 61 6c 20 42 75 |ts the n|ormal Bu|
|00000ec0| 74 74 6f 6e 28 29 20 73 | 79 73 74 65 6d 20 63 61 |tton() s|ystem ca|
|00000ed0| 6c 6c 20 61 6e 64 0d 20 | 20 20 20 73 75 73 70 65 |ll and. | suspe|
|00000ee0| 6e 64 73 20 74 68 65 20 | 72 75 6e 6e 69 6e 67 20 |nds the |running |
|00000ef0| 74 61 73 6b 20 77 68 65 | 6e 65 76 65 72 20 74 68 |task whe|never th|
|00000f00| 65 20 75 73 65 72 20 70 | 72 65 73 73 65 73 20 74 |e user p|resses t|
|00000f10| 68 65 20 6d 6f 75 73 65 | 20 62 75 74 74 6f 6e 2e |he mouse| button.|
|00000f20| 0d 20 20 20 20 49 74 20 | 69 73 20 6e 65 65 64 65 |. It |is neede|
|00000f30| 64 20 73 69 6e 63 65 20 | 6d 61 6e 79 20 6f 66 20 |d since |many of |
|00000f40| 74 68 65 20 4d 61 63 20 | 73 79 73 74 65 6d 20 63 |the Mac |system c|
|00000f50| 61 6c 6c 73 20 22 6c 6f | 6f 70 22 20 77 61 69 74 |alls "lo|op" wait|
|00000f60| 69 6e 67 20 66 6f 72 0d | 20 20 20 20 74 68 65 20 |ing for.| the |
|00000f70| 62 75 74 74 6f 6e 20 74 | 6f 20 62 65 20 72 65 6c |button t|o be rel|
|00000f80| 65 61 73 65 64 2e 20 54 | 68 69 73 20 6d 61 6b 65 |eased. T|his make|
|00000f90| 73 20 74 68 65 6d 20 67 | 69 76 65 20 75 70 20 74 |s them g|ive up t|
|00000fa0| 68 65 20 70 72 6f 63 65 | 73 73 6f 72 0d 20 20 20 |he proce|ssor. |
|00000fb0| 20 73 6f 20 74 68 61 74 | 20 6f 74 68 65 72 20 74 | so that| other t|
|00000fc0| 61 73 6b 73 20 6d 61 79 | 20 72 75 6e 20 77 68 69 |asks may| run whi|
|00000fd0| 6c 65 20 74 68 65 20 62 | 75 74 74 6f 6e 20 69 73 |le the b|utton is|
|00000fe0| 20 64 6f 6e 65 2e 20 54 | 68 69 73 20 69 73 0d 20 | done. T|his is. |
|00000ff0| 20 20 20 65 73 70 65 63 | 69 61 6c 6c 79 20 69 6d | espec|ially im|
|00001000| 70 6f 72 74 61 6e 74 20 | 66 6f 72 20 64 65 73 6b |portant |for desk|
|00001010| 20 61 63 63 65 73 73 6f | 72 69 65 73 2e 0d 2d 2d | accesso|ries..--|
|00001020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001040| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001050| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|00001060| 0d 70 61 73 63 61 6c 20 | 42 6f 6f 6c 65 61 6e 20 |.pascal |Boolean |
|00001070| 6e 65 77 42 75 74 74 6f | 6e 28 29 0d 7b 0d 09 0d |newButto|n().{...|
|00001080| 09 2f 2a 20 53 75 73 70 | 65 6e 64 20 74 68 65 20 |./* Susp|end the |
|00001090| 72 75 6e 6e 69 6e 67 20 | 74 61 73 6b 20 2a 2f 0d |running |task */.|
|000010a0| 09 0d 09 53 75 73 70 65 | 6e 64 54 61 73 6b 28 29 |...Suspe|ndTask()|
|000010b0| 3b 0d 0d 09 2f 2a 20 43 | 61 6c 6c 20 74 68 65 20 |;.../* C|all the |
|000010c0| 22 72 65 61 6c 22 20 42 | 75 74 74 6f 6e 20 74 72 |"real" B|utton tr|
|000010d0| 61 70 20 2a 2f 0d 09 0d | 09 61 73 6d 20 7b 0d 09 |ap */...|.asm {..|
|000010e0| 09 4d 4f 56 45 2e 4c 09 | 62 75 74 74 6f 6e 41 64 |.MOVE.L.|buttonAd|
|000010f0| 64 72 2c 41 30 0d 09 09 | 4a 4d 50 09 09 09 28 41 |dr,A0...|JMP...(A|
|00001100| 30 29 0d 09 7d 0d 7d 0d | 0d 2f 2a 2d 2d 2d 2d 2d |0)..}.}.|./*-----|
|00001110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 20 20 20 20 |--------|---. |
|00001150| 6d 65 6e 75 44 6f 77 6e | 28 29 0d 20 20 20 20 6d |menuDown|(). m|
|00001160| 65 6e 75 55 70 28 29 0d | 20 20 20 20 0d 20 20 20 |enuUp().| . |
|00001170| 20 54 68 65 73 65 20 74 | 77 6f 20 72 6f 75 74 69 | These t|wo routi|
|00001180| 6e 65 73 20 70 61 74 63 | 68 20 41 70 70 6c 65 27 |nes patc|h Apple'|
|00001190| 73 20 6d 65 6e 75 20 6d | 61 6e 61 67 65 72 20 74 |s menu m|anager t|
|000011a0| 6f 20 61 6c 6c 6f 77 20 | 61 20 77 69 6e 64 6f 77 |o allow |a window|
|000011b0| 0d 20 20 20 20 77 69 74 | 68 20 6d 6f 76 69 6e 67 |. wit|h moving|
|000011c0| 20 67 72 61 70 68 69 63 | 73 20 75 6e 64 65 72 6e | graphic|s undern|
|000011d0| 65 61 74 68 20 61 20 6d | 65 6e 75 20 74 68 61 74 |eath a m|enu that|
|000011e0| 20 69 73 20 64 6f 77 6e | 2e 20 41 70 70 6c 65 27 | is down|. Apple'|
|000011f0| 73 0d 20 20 20 20 6d 65 | 6e 75 20 6d 61 6e 61 67 |s. me|nu manag|
|00001200| 65 72 20 72 6f 75 74 69 | 6e 65 73 20 68 61 76 65 |er routi|nes have|
|00001210| 20 74 77 6f 20 70 72 6f | 62 6c 65 6d 73 20 2d 0d | two pro|blems -.|
|00001220| 20 20 20 20 0d 20 20 20 | 20 09 31 29 20 54 68 65 | . | .1) The|
|00001230| 79 20 64 6f 20 6e 6f 74 | 20 74 72 65 61 74 20 61 |y do not| treat a|
|00001240| 20 6d 65 6e 75 20 6c 69 | 6b 65 20 61 20 73 65 70 | menu li|ke a sep|
|00001250| 61 72 61 74 65 20 77 69 | 6e 64 6f 77 2c 20 68 65 |arate wi|ndow, he|
|00001260| 6e 63 65 20 61 6e 79 0d | 20 20 20 20 09 20 20 20 |nce any.| . |
|00001270| 64 72 61 77 69 6e 67 20 | 69 6e 20 61 20 77 69 6e |drawing |in a win|
|00001280| 64 6f 77 20 62 65 6e 65 | 61 74 68 20 61 20 64 72 |dow bene|ath a dr|
|00001290| 6f 70 70 65 64 20 6d 65 | 6e 75 20 64 72 61 77 73 |opped me|nu draws|
|000012a0| 20 6f 76 65 72 20 74 68 | 65 20 6d 65 6e 75 2e 0d | over th|e menu..|
|000012b0| 20 20 20 20 09 20 20 20 | 0d 20 20 20 20 09 32 29 | . |. .2)|
|000012c0| 20 54 68 65 79 20 63 6f | 70 79 20 74 68 65 20 62 | They co|py the b|
|000012d0| 69 74 73 20 75 6e 64 65 | 72 20 74 68 65 20 6d 65 |its unde|r the me|
|000012e0| 6e 75 20 62 65 66 6f 72 | 65 20 64 72 61 77 69 6e |nu befor|e drawin|
|000012f0| 67 20 69 74 20 61 6e 64 | 0d 20 20 20 20 09 20 20 |g it and|. . |
|00001300| 20 72 65 73 74 6f 72 65 | 20 74 68 65 20 62 69 74 | restore| the bit|
|00001310| 73 20 61 66 74 65 72 20 | 74 68 65 20 6d 65 6e 75 |s after |the menu|
|00001320| 20 67 6f 65 73 20 75 70 | 2e 20 54 68 65 20 62 69 | goes up|. The bi|
|00001330| 74 73 20 75 6e 64 65 72 | 20 74 68 65 0d 20 20 20 |ts under| the. |
|00001340| 20 09 20 20 20 6d 65 6e | 75 20 6d 61 79 20 68 61 | . men|u may ha|
|00001350| 76 65 20 63 68 61 6e 67 | 65 64 20 64 75 72 69 6e |ve chang|ed durin|
|00001360| 67 20 74 68 65 20 74 69 | 6d 65 20 74 68 65 20 6d |g the ti|me the m|
|00001370| 65 6e 75 20 77 65 6e 74 | 20 64 6f 77 6e 0d 20 20 |enu went| down. |
|00001380| 20 20 09 20 20 20 75 6e | 74 69 6c 20 69 74 20 77 | . un|til it w|
|00001390| 65 6e 74 20 75 70 2e 0d | 20 20 20 20 09 20 20 20 |ent up..| . |
|000013a0| 0d 20 20 20 20 4d 65 6e | 75 44 6f 77 6e 20 69 73 |. Men|uDown is|
|000013b0| 20 63 61 6c 6c 65 64 20 | 66 72 6f 6d 20 74 68 65 | called |from the|
|000013c0| 20 4d 65 6e 75 53 65 6c | 65 63 74 20 52 4f 4d 20 | MenuSel|ect ROM |
|000013d0| 72 6f 75 74 69 6e 65 20 | 74 68 72 6f 75 67 68 20 |routine |through |
|000013e0| 74 68 65 0d 20 20 20 20 | 6c 6f 77 20 6d 65 6d 6f |the. |low memo|
|000013f0| 72 79 20 67 6c 6f 62 61 | 6c 20 6d 42 61 72 48 6f |ry globa|l mBarHo|
|00001400| 6f 6b 2e 20 4d 65 6e 75 | 55 70 20 69 73 20 63 61 |ok. Menu|Up is ca|
|00001410| 6c 6c 65 64 20 62 79 20 | 74 68 69 73 20 61 70 70 |lled by |this app|
|00001420| 6c 69 63 61 74 69 6f 6e | 0d 20 20 20 20 61 66 74 |lication|. aft|
|00001430| 65 72 20 4d 65 6e 75 53 | 65 6c 65 63 74 2e 20 54 |er MenuS|elect. T|
|00001440| 68 65 73 65 20 72 6f 75 | 74 69 6e 65 73 20 22 73 |hese rou|tines "s|
|00001450| 6c 69 64 65 22 20 61 20 | 72 65 61 6c 20 77 69 6e |lide" a |real win|
|00001460| 64 6f 77 20 75 6e 64 65 | 72 20 74 68 65 0d 20 20 |dow unde|r the. |
|00001470| 20 20 6d 65 6e 75 20 73 | 6f 20 74 68 61 74 20 74 | menu s|o that t|
|00001480| 68 65 20 77 69 6e 64 6f | 77 20 75 6e 64 65 72 6e |he windo|w undern|
|00001490| 65 61 74 68 20 74 68 65 | 20 6d 65 6e 75 20 77 6f |eath the| menu wo|
|000014a0| 6e 27 74 20 64 72 61 77 | 20 6f 76 65 72 20 74 68 |n't draw| over th|
|000014b0| 65 0d 20 20 20 20 6d 65 | 6e 75 2e 20 54 68 69 73 |e. me|nu. This|
|000014c0| 20 61 6c 73 6f 20 63 61 | 75 73 65 73 20 61 6e 20 | also ca|uses an |
|000014d0| 75 70 64 61 74 65 20 65 | 76 65 6e 74 20 66 6f 72 |update e|vent for|
|000014e0| 20 74 68 65 20 77 69 6e | 64 6f 77 20 75 6e 64 65 | the win|dow unde|
|000014f0| 72 6e 65 61 74 68 0d 20 | 20 20 20 74 68 65 20 6d |rneath. | the m|
|00001500| 65 6e 75 2e 20 0d 20 20 | 20 20 0d 20 20 20 20 59 |enu. . | . Y|
|00001510| 6f 75 20 77 69 6c 6c 20 | 6e 6f 74 69 63 65 20 74 |ou will |notice t|
|00001520| 68 61 74 20 61 66 74 65 | 72 20 61 20 6d 65 6e 75 |hat afte|r a menu|
|00001530| 20 67 6f 65 73 20 75 70 | 20 74 68 61 74 20 73 6f | goes up| that so|
|00001540| 6d 65 20 67 61 72 62 61 | 67 65 20 69 73 0d 20 20 |me garba|ge is. |
|00001550| 20 20 6c 65 66 74 20 69 | 6e 20 74 68 65 20 77 69 | left i|n the wi|
|00001560| 6e 64 6f 77 2e 20 54 68 | 69 73 20 69 73 20 64 75 |ndow. Th|is is du|
|00001570| 65 20 74 6f 20 74 68 65 | 20 66 61 63 74 20 74 68 |e to the| fact th|
|00001580| 61 74 20 77 68 65 6e 20 | 41 70 70 6c 65 20 63 6f |at when |Apple co|
|00001590| 70 69 65 73 20 0d 20 20 | 20 20 74 68 65 20 62 69 |pies . | the bi|
|000015a0| 74 73 20 75 6e 64 65 72 | 20 74 68 65 20 6d 65 6e |ts under| the men|
|000015b0| 75 2c 20 74 68 65 79 20 | 63 6f 70 79 20 61 20 72 |u, they |copy a r|
|000015c0| 65 63 74 61 6e 67 6c 65 | 20 34 20 62 69 74 73 20 |ectangle| 4 bits |
|000015d0| 77 69 64 65 72 20 61 6e | 64 0d 20 20 20 20 6c 6f |wider an|d. lo|
|000015e0| 6e 67 65 72 20 74 68 65 | 6e 20 74 68 65 20 6d 65 |nger the|n the me|
|000015f0| 6e 75 20 72 65 63 74 61 | 6e 67 6c 65 2e 20 57 68 |nu recta|ngle. Wh|
|00001600| 65 6e 20 74 68 65 20 62 | 69 74 73 20 61 72 65 20 |en the b|its are |
|00001610| 63 6f 70 69 65 64 20 62 | 61 63 6b 2c 0d 20 20 20 |copied b|ack,. |
|00001620| 20 74 68 69 73 20 65 78 | 74 72 61 20 34 20 62 69 | this ex|tra 4 bi|
|00001630| 74 73 20 73 68 6f 77 73 | 20 75 70 20 61 73 20 67 |ts shows| up as g|
|00001640| 61 72 62 61 67 65 20 69 | 6e 20 74 68 65 20 77 69 |arbage i|n the wi|
|00001650| 6e 64 6f 77 2e 20 57 68 | 79 20 74 68 65 79 0d 20 |ndow. Wh|y they. |
|00001660| 20 20 20 64 6f 20 34 20 | 65 78 74 72 61 20 62 69 | do 4 |extra bi|
|00001670| 74 73 20 69 73 20 62 65 | 79 6f 6e 64 20 6d 65 2e |ts is be|yond me.|
|00001680| 20 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | .------|--------|
|00001690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000016c0| 2d 2d 2a 2f 0d 6d 65 6e | 75 44 6f 77 6e 28 6d 65 |--*/.men|uDown(me|
|000016d0| 6e 75 52 65 63 74 29 0d | 52 65 63 74 20 2a 6d 65 |nuRect).|Rect *me|
|000016e0| 6e 75 52 65 63 74 3b 0d | 7b 0d 09 2f 2a 20 49 66 |nuRect;.|{../* If|
|000016f0| 20 74 68 69 73 20 69 73 | 20 74 68 65 20 66 69 72 | this is| the fir|
|00001700| 73 74 20 6d 65 6e 75 20 | 74 6f 20 64 72 6f 70 20 |st menu |to drop |
|00001710| 64 6f 77 6e 20 6f 72 20 | 74 68 65 20 6e 65 78 74 |down or |the next|
|00001720| 20 6f 6e 65 20 28 74 68 | 65 20 75 73 65 72 20 69 | one (th|e user i|
|00001730| 73 20 0d 09 20 20 20 73 | 63 61 6e 6e 69 6e 67 20 |s .. s|canning |
|00001740| 74 68 65 20 6d 65 6e 75 | 73 20 77 69 74 68 20 74 |the menu|s with t|
|00001750| 68 65 20 62 75 74 74 6f | 6e 20 64 6f 77 6e 29 2c |he butto|n down),|
|00001760| 20 74 68 65 6e 20 73 6c | 69 64 65 20 61 20 72 65 | then sl|ide a re|
|00001770| 61 6c 20 77 69 6e 64 6f | 77 0d 09 20 20 20 75 6e |al windo|w.. un|
|00001780| 64 65 72 20 74 68 65 20 | 6d 65 6e 75 20 73 6f 20 |der the |menu so |
|00001790| 74 68 61 74 20 74 68 65 | 20 77 69 6e 64 6f 77 20 |that the| window |
|000017a0| 75 6e 64 65 72 6e 65 61 | 74 68 20 77 6f 6e 27 74 |undernea|th won't|
|000017b0| 20 64 72 61 77 20 6f 76 | 65 72 20 74 68 65 0d 09 | draw ov|er the..|
|000017c0| 20 20 20 6d 65 6e 75 0d | 09 2a 2f 0d 09 20 20 20 | menu.|.*/.. |
|000017d0| 0d 09 69 66 20 28 28 6d | 65 6e 75 57 69 6e 64 6f |..if ((m|enuWindo|
|000017e0| 77 20 3d 3d 20 30 29 20 | 7c 7c 20 28 21 45 71 75 |w == 0) ||| (!Equ|
|000017f0| 61 6c 52 65 63 74 28 6d | 65 6e 75 52 65 63 74 2c |alRect(m|enuRect,|
|00001800| 20 26 6f 6c 64 4d 65 6e | 75 52 65 63 74 29 29 29 | &oldMen|uRect)))|
|00001810| 20 7b 0d 09 09 0d 09 09 | 6d 65 6e 75 55 70 28 29 | {......|menuUp()|
|00001820| 3b 0d 09 09 0d 09 09 6f | 6c 64 4d 65 6e 75 52 65 |;......o|ldMenuRe|
|00001830| 63 74 20 3d 20 2a 6d 65 | 6e 75 52 65 63 74 3b 0d |ct = *me|nuRect;.|
|00001840| 09 09 0d 09 09 6d 65 6e | 75 57 69 6e 64 6f 77 20 |.....men|uWindow |
|00001850| 3d 20 4e 65 77 57 69 6e | 64 6f 77 28 26 6d 65 6e |= NewWin|dow(&men|
|00001860| 75 57 69 6e 64 52 65 63 | 2c 20 6d 65 6e 75 52 65 |uWindRec|, menuRe|
|00001870| 63 74 2c 20 22 22 2c 20 | 46 41 4c 53 45 2c 20 61 |ct, "", |FALSE, a|
|00001880| 6c 74 44 42 6f 78 50 72 | 6f 63 2c 20 2d 31 4c 2c |ltDBoxPr|oc, -1L,|
|00001890| 20 46 41 4c 53 45 2c 20 | 30 4c 29 3b 0d 09 09 53 | FALSE, |0L);...S|
|000018a0| 68 6f 77 48 69 64 65 28 | 6d 65 6e 75 57 69 6e 64 |howHide(|menuWind|
|000018b0| 6f 77 2c 20 54 52 55 45 | 29 3b 0d 09 7d 0d 09 72 |ow, TRUE|);..}..r|
|000018c0| 65 74 75 72 6e 28 30 29 | 3b 0d 7d 0d 09 0d 6d 65 |eturn(0)|;.}...me|
|000018d0| 6e 75 55 70 28 29 0d 7b | 0d 09 0d 09 2f 2a 20 4f |nuUp().{|..../* O|
|000018e0| 6e 63 65 20 74 68 65 20 | 6d 65 6e 75 20 67 6f 65 |nce the |menu goe|
|000018f0| 73 20 75 70 2c 20 72 65 | 6d 6f 76 65 20 74 68 65 |s up, re|move the|
|00001900| 20 77 69 6e 64 6f 77 20 | 77 65 20 73 6c 69 64 20 | window |we slid |
|00001910| 75 6e 64 65 72 20 69 74 | 20 2a 2f 0d 09 0d 09 69 |under it| */....i|
|00001920| 66 20 28 6d 65 6e 75 57 | 69 6e 64 6f 77 29 20 7b |f (menuW|indow) {|
|00001930| 0d 09 09 43 6c 6f 73 65 | 57 69 6e 64 6f 77 28 6d |...Close|Window(m|
|00001940| 65 6e 75 57 69 6e 64 6f | 77 29 3b 0d 09 09 6d 65 |enuWindo|w);...me|
|00001950| 6e 75 57 69 6e 64 6f 77 | 20 3d 20 30 4c 3b 0d 09 |nuWindow| = 0L;..|
|00001960| 7d 0d 7d 0d 0d 2f 2a 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}.}../*-|--------|
|00001970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000019a0| 2d 2d 2d 2d 2d 2d 2d 0d | 20 20 20 20 6d 79 53 77 |-------.| mySw|
|000019b0| 61 70 50 72 6f 63 28 29 | 20 20 20 20 20 20 20 20 |apProc()| |
|000019c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000019d0| 20 20 20 20 20 20 20 20 | 28 53 57 41 50 20 50 52 | |(SWAP PR|
|000019e0| 4f 43 45 44 55 52 45 29 | 0d 20 20 20 20 0d 20 20 |OCEDURE)|. . |
|000019f0| 20 20 54 68 69 73 20 69 | 73 20 61 6e 20 65 78 61 | This i|s an exa|
|00001a00| 6d 70 6c 65 20 6f 66 20 | 61 20 73 77 61 70 20 70 |mple of |a swap p|
|00001a10| 72 6f 63 65 64 75 72 65 | 2e 20 53 69 6e 63 65 20 |rocedure|. Since |
|00001a20| 65 61 63 68 20 74 61 73 | 6b 20 69 73 20 75 73 69 |each tas|k is usi|
|00001a30| 6e 67 0d 20 20 20 20 61 | 20 73 65 70 61 72 61 74 |ng. a| separat|
|00001a40| 65 20 77 69 6e 64 6f 77 | 2c 20 61 20 73 77 61 70 |e window|, a swap|
|00001a50| 20 70 72 6f 63 65 64 75 | 72 65 20 69 73 20 6e 65 | procedu|re is ne|
|00001a60| 65 64 65 64 20 74 6f 20 | 73 61 76 65 20 61 77 61 |eded to |save awa|
|00001a70| 79 20 74 68 65 0d 20 20 | 20 20 63 75 72 72 65 6e |y the. | curren|
|00001a80| 74 20 77 69 6e 64 6f 77 | 20 61 6e 64 20 72 65 73 |t window| and res|
|00001a90| 74 6f 72 65 20 69 74 20 | 77 68 65 6e 20 74 68 65 |tore it |when the|
|00001aa0| 20 74 61 73 6b 20 72 65 | 73 75 6d 65 73 2e 20 54 | task re|sumes. T|
|00001ab0| 61 73 6b 65 72 20 77 69 | 6c 6c 0d 20 20 20 20 63 |asker wi|ll. c|
|00001ac0| 61 6c 6c 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 |all this| routine|
|00001ad0| 20 77 68 65 6e 65 76 65 | 72 20 61 20 74 61 73 6b | wheneve|r a task|
|00001ae0| 20 73 75 73 70 65 6e 64 | 73 20 28 63 61 6c 6c 73 | suspend|s (calls|
|00001af0| 20 53 75 73 70 65 6e 64 | 54 61 73 6b 2c 0d 20 20 | Suspend|Task,. |
|00001b00| 20 20 6f 72 20 63 61 6c | 6c 73 20 61 20 54 61 73 | or cal|ls a Tas|
|00001b10| 6b 65 72 20 72 6f 75 74 | 69 6e 65 20 74 68 61 74 |ker rout|ine that|
|00001b20| 20 73 75 73 70 65 6e 64 | 73 20 74 68 65 20 74 61 | suspend|s the ta|
|00001b30| 73 6b 29 20 61 6e 64 20 | 77 69 6c 6c 0d 20 20 20 |sk) and |will. |
|00001b40| 20 72 65 73 75 6d 65 20 | 74 68 65 20 74 61 73 6b | resume |the task|
|00001b50| 20 68 65 72 65 2e 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | here..-|--------|
|00001b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001b90| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 0d 6d 79 53 77 61 |-------*|/..mySwa|
|00001ba0| 70 50 72 6f 63 28 73 70 | 29 0d 6c 6f 6e 67 20 2a |pProc(sp|).long *|
|00001bb0| 73 70 3b 0d 7b 0d 57 69 | 6e 64 6f 77 50 74 72 20 |sp;.{.Wi|ndowPtr |
|00001bc0| 6d 79 50 6f 72 74 3b 0d | 09 0d 09 2f 2a 20 53 61 |myPort;.|.../* Sa|
|00001bd0| 76 65 20 61 77 61 79 20 | 74 68 65 20 77 69 6e 64 |ve away |the wind|
|00001be0| 6f 77 20 77 65 20 61 72 | 65 20 63 75 72 72 65 6e |ow we ar|e curren|
|00001bf0| 74 6c 79 20 69 6e 20 2a | 2f 0d 09 0d 09 47 65 74 |tly in *|/....Get|
|00001c00| 50 6f 72 74 28 26 6d 79 | 50 6f 72 74 29 3b 0d 09 |Port(&my|Port);..|
|00001c10| 0d 09 2f 2a 20 53 77 61 | 70 20 6f 75 74 20 74 68 |../* Swa|p out th|
|00001c20| 69 73 20 74 61 73 6b 20 | 2a 2f 0d 09 0d 09 53 77 |is task |*/....Sw|
|00001c30| 61 70 54 61 73 6b 4f 75 | 74 28 73 70 29 3b 0d 09 |apTaskOu|t(sp);..|
|00001c40| 0d 09 2f 2a 20 52 65 73 | 74 6f 72 65 20 74 68 65 |../* Res|tore the|
|00001c50| 20 77 69 6e 64 6f 77 20 | 77 65 20 77 65 72 65 20 | window |we were |
|00001c60| 70 72 65 76 69 6f 75 73 | 6c 79 20 75 73 69 6e 67 |previous|ly using|
|00001c70| 20 2a 2f 0d 09 0d 09 53 | 65 74 50 6f 72 74 28 6d | */....S|etPort(m|
|00001c80| 79 50 6f 72 74 29 3b 0d | 7d 0d 09 09 0d 2f 2a 2d |yPort);.|}..../*-|
|00001c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00001cd0| 20 20 20 20 62 6f 75 6e | 63 65 72 28 29 20 20 20 | boun|cer() |
|00001ce0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001cf0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00001d00| 20 20 20 20 20 20 20 20 | 20 28 54 41 53 4b 29 0d | | (TASK).|
|00001d10| 20 20 20 20 0d 20 20 20 | 20 54 68 69 73 20 74 61 | . | This ta|
|00001d20| 73 6b 20 62 6f 75 6e 63 | 65 73 20 61 20 62 61 6c |sk bounc|es a bal|
|00001d30| 6c 73 20 61 72 6f 75 6e | 64 20 69 6e 20 61 20 77 |ls aroun|d in a w|
|00001d40| 69 6e 64 6f 77 2e 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |indow..-|--------|
|00001d50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001d80| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 0d 62 6f 75 6e 63 |-------*|/..bounc|
|00001d90| 65 72 28 29 0d 7b 0d 23 | 64 65 66 69 6e 65 20 64 |er().{.#|define d|
|00001da0| 68 20 35 0d 23 64 65 66 | 69 6e 65 20 64 76 20 37 |h 5.#def|ine dv 7|
|00001db0| 0d 57 69 6e 64 6f 77 50 | 74 72 20 77 70 74 72 3b |.WindowP|tr wptr;|
|00001dc0| 0d 52 65 63 74 20 20 20 | 20 20 20 62 61 6c 6c 52 |.Rect | ballR|
|00001dd0| 65 63 74 3b 0d 73 68 6f | 72 74 20 20 20 20 20 76 |ect;.sho|rt v|
|00001de0| 68 3b 0d 73 68 6f 72 74 | 20 20 20 20 20 76 76 3b |h;.short| vv;|
|00001df0| 0d 47 72 61 66 50 74 72 | 20 20 20 73 61 76 65 50 |.GrafPtr| saveP|
|00001e00| 6f 72 74 3b 0d 4d 73 67 | 20 20 20 20 20 20 20 6d |ort;.Msg| m|
|00001e10| 79 4d 73 67 3b 0d 0d 09 | 2f 2a 20 4f 70 65 6e 20 |yMsg;...|/* Open |
|00001e20| 61 20 6e 65 77 20 77 69 | 6e 64 6f 77 20 2a 2f 0d |a new wi|ndow */.|
|00001e30| 09 0d 09 77 70 74 72 20 | 3d 20 4e 65 77 57 69 6e |...wptr |= NewWin|
|00001e40| 64 6f 77 28 30 2c 26 74 | 61 73 6b 52 65 63 74 5b |dow(0,&t|askRect[|
|00001e50| 52 75 6e 54 61 73 6b 49 | 44 28 29 5d 2c 22 5c 70 |RunTaskI|D()],"\p|
|00001e60| 42 6f 75 6e 63 65 72 22 | 2c 31 2c 30 2c 2d 31 2c |Bouncer"|,1,0,-1,|
|00001e70| 30 2c 30 29 3b 0d 20 20 | 53 65 74 50 6f 72 74 28 |0,0);. |SetPort(|
|00001e80| 77 70 74 72 29 3b 0d 20 | 20 0d 20 20 2f 2a 20 22 |wptr);. | . /* "|
|00001e90| 54 61 67 22 20 74 68 65 | 20 77 69 6e 64 6f 77 20 |Tag" the| window |
|00001ea0| 77 69 74 68 20 6f 75 72 | 20 74 61 73 6b 20 6e 75 |with our| task nu|
|00001eb0| 6d 62 65 72 20 2a 2f 0d | 20 20 0d 20 20 53 65 74 |mber */.| . Set|
|00001ec0| 57 52 65 66 43 6f 6e 28 | 77 70 74 72 2c 20 52 75 |WRefCon(|wptr, Ru|
|00001ed0| 6e 54 61 73 6b 49 44 28 | 29 29 3b 0d 20 20 0d 20 |nTaskID(|));. . |
|00001ee0| 20 2f 2a 20 53 65 74 20 | 75 70 20 74 68 65 20 62 | /* Set |up the b|
|00001ef0| 61 6c 6c 20 72 65 63 74 | 61 6e 67 6c 65 20 20 2a |all rect|angle *|
|00001f00| 2f 0d 20 20 20 20 20 20 | 20 20 0d 20 20 53 65 74 |/. | . Set|
|00001f10| 52 65 63 74 28 26 62 61 | 6c 6c 52 65 63 74 2c 32 |Rect(&ba|llRect,2|
|00001f20| 30 2c 32 30 2c 34 30 2c | 34 30 29 3b 0d 20 20 76 |0,20,40,|40);. v|
|00001f30| 68 20 3d 20 64 68 3b 0d | 20 20 76 76 20 3d 20 64 |h = dh;.| vv = d|
|00001f40| 76 3b 0d 20 20 0d 20 20 | 2f 2a 20 52 75 6e 20 74 |v;. . |/* Run t|
|00001f50| 61 73 6b 20 75 6e 74 69 | 6c 20 6d 6f 75 73 65 20 |ask unti|l mouse |
|00001f60| 62 75 74 74 6f 6e 20 69 | 73 20 70 72 65 73 73 65 |button i|s presse|
|00001f70| 64 20 2a 2f 0d 20 20 0d | 20 20 77 68 69 6c 65 20 |d */. .| while |
|00001f80| 28 52 75 6e 54 61 73 6b | 49 44 28 29 20 3c 20 6e |(RunTask|ID() < n|
|00001f90| 75 6d 5f 74 61 73 6b 73 | 29 20 7b 0d 0d 09 09 2f |um_tasks|) {..../|
|00001fa0| 2a 20 43 68 65 63 6b 20 | 74 6f 20 73 65 65 20 69 |* Check |to see i|
|00001fb0| 66 20 61 6e 79 20 75 70 | 64 61 74 65 20 65 76 65 |f any up|date eve|
|00001fc0| 6e 74 73 20 61 72 65 20 | 70 65 6e 64 69 6e 67 20 |nts are |pending |
|00001fd0| 66 6f 72 20 74 68 69 73 | 20 74 61 73 6b 20 2a 2f |for this| task */|
|00001fe0| 0d 09 09 0d 09 09 69 66 | 20 28 47 65 74 4d 73 67 |......if| (GetMsg|
|00001ff0| 28 75 70 64 61 74 65 45 | 76 74 2c 20 26 6d 79 4d |(updateE|vt, &myM|
|00002000| 73 67 29 20 21 3d 20 4e | 4f 5f 4d 53 47 29 20 7b |sg) != N|O_MSG) {|
|00002010| 09 09 0d 09 09 09 42 65 | 67 69 6e 55 70 64 61 74 |......Be|ginUpdat|
|00002020| 65 28 77 70 74 72 29 3b | 0d 09 09 09 45 72 61 73 |e(wptr);|....Eras|
|00002030| 65 52 65 63 74 28 26 77 | 70 74 72 2d 3e 70 6f 72 |eRect(&w|ptr->por|
|00002040| 74 52 65 63 74 29 3b 0d | 09 09 09 45 6e 64 55 70 |tRect);.|...EndUp|
|00002050| 64 61 74 65 28 77 70 74 | 72 29 3b 0d 09 09 7d 0d |date(wpt|r);...}.|
|00002060| 09 09 0d 20 20 20 20 50 | 61 69 6e 74 4f 76 61 6c |... P|aintOval|
|00002070| 28 26 62 61 6c 6c 52 65 | 63 74 29 3b 20 20 20 20 |(&ballRe|ct); |
|00002080| 20 20 20 20 20 20 20 20 | 20 2f 2a 20 44 72 61 77 | | /* Draw|
|00002090| 20 74 68 65 20 62 61 6c | 6c 20 20 20 20 20 2a 2f | the bal|l */|
|000020a0| 0d 20 20 20 20 53 75 73 | 70 65 6e 64 54 61 73 6b |. Sus|pendTask|
|000020b0| 28 29 3b 20 20 20 20 20 | 20 20 20 20 20 20 20 20 |(); | |
|000020c0| 20 20 20 20 20 20 20 2f | 2a 20 53 75 73 70 65 6e | /|* Suspen|
|000020d0| 64 20 74 68 69 73 20 74 | 61 73 6b 20 2a 2f 0d 20 |d this t|ask */. |
|000020e0| 20 20 20 45 72 61 73 65 | 4f 76 61 6c 28 26 62 61 | Erase|Oval(&ba|
|000020f0| 6c 6c 52 65 63 74 29 3b | 20 20 20 20 20 20 20 20 |llRect);| |
|00002100| 20 20 20 20 20 2f 2a 20 | 45 72 61 73 65 20 74 68 | /* |Erase th|
|00002110| 65 20 62 61 6c 6c 20 20 | 20 20 2a 2f 0d 20 20 20 |e ball | */. |
|00002120| 20 0d 20 20 20 20 2f 2a | 20 43 6f 6d 70 75 74 65 | . /*| Compute|
|00002130| 20 74 68 65 20 6e 65 77 | 20 62 61 6c 6c 27 73 20 | the new| ball's |
|00002140| 63 6f 6f 72 64 69 6e 61 | 74 65 73 20 2a 2f 0d 20 |coordina|tes */. |
|00002150| 20 20 20 0d 20 20 20 20 | 69 66 20 28 62 61 6c 6c | . |if (ball|
|00002160| 52 65 63 74 2e 62 6f 74 | 74 6f 6d 20 3e 20 77 70 |Rect.bot|tom > wp|
|00002170| 74 72 2d 3e 70 6f 72 74 | 52 65 63 74 2e 62 6f 74 |tr->port|Rect.bot|
|00002180| 74 6f 6d 29 0d 20 20 20 | 20 20 20 76 76 20 3d 20 |tom). | vv = |
|00002190| 2d 20 76 76 3b 0d 20 20 | 20 20 69 66 20 28 62 61 |- vv;. | if (ba|
|000021a0| 6c 6c 52 65 63 74 2e 74 | 6f 70 20 3c 20 77 70 74 |llRect.t|op < wpt|
|000021b0| 72 2d 3e 70 6f 72 74 52 | 65 63 74 2e 74 6f 70 29 |r->portR|ect.top)|
|000021c0| 0d 20 20 20 20 20 20 76 | 76 20 3d 20 2d 20 76 76 |. v|v = - vv|
|000021d0| 3b 0d 20 20 20 20 69 66 | 20 28 62 61 6c 6c 52 65 |;. if| (ballRe|
|000021e0| 63 74 2e 6c 65 66 74 20 | 3c 20 77 70 74 72 2d 3e |ct.left |< wptr->|
|000021f0| 70 6f 72 74 52 65 63 74 | 2e 6c 65 66 74 29 0d 20 |portRect|.left). |
|00002200| 20 20 20 20 20 76 68 20 | 3d 20 2d 20 76 68 3b 0d | vh |= - vh;.|
|00002210| 20 20 20 20 69 66 20 28 | 62 61 6c 6c 52 65 63 74 | if (|ballRect|
|00002220| 2e 72 69 67 68 74 20 3e | 20 77 70 74 72 2d 3e 70 |.right >| wptr->p|
|00002230| 6f 72 74 52 65 63 74 2e | 72 69 67 68 74 29 0d 20 |ortRect.|right). |
|00002240| 20 20 20 20 20 76 68 20 | 3d 20 2d 20 76 68 3b 0d | vh |= - vh;.|
|00002250| 20 20 20 20 20 20 0d 20 | 20 20 20 2f 2a 20 4d 6f | . | /* Mo|
|00002260| 76 65 20 74 68 65 20 62 | 61 6c 6c 20 74 6f 20 61 |ve the b|all to a|
|00002270| 20 6e 65 77 20 70 6f 73 | 69 74 69 6f 6e 20 2a 2f | new pos|ition */|
|00002280| 0d 20 20 20 20 20 0d 20 | 20 20 20 4f 66 66 73 65 |. . | Offse|
|00002290| 74 52 65 63 74 28 26 62 | 61 6c 6c 52 65 63 74 2c |tRect(&b|allRect,|
|000022a0| 76 68 2c 76 76 29 3b 0d | 09 7d 0d 20 20 0d 20 20 |vh,vv);.|.}. . |
|000022b0| 2f 2a 20 52 65 6d 6f 76 | 65 20 74 68 65 20 77 69 |/* Remov|e the wi|
|000022c0| 6e 64 6f 77 20 77 68 65 | 6e 20 64 6f 6e 65 20 2a |ndow whe|n done *|
|000022d0| 2f 0d 20 20 0d 20 20 44 | 69 73 70 6f 73 65 57 69 |/. . D|isposeWi|
|000022e0| 6e 64 6f 77 28 77 70 74 | 72 29 3b 0d 7d 0d 20 20 |ndow(wpt|r);.}. |
|000022f0| 0d 2f 2a 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |./*-----|--------|
|00002300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002310| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002330| 2d 2d 2d 0d 20 20 20 20 | 7a 6f 6f 6d 65 72 28 29 |---. |zoomer()|
|00002340| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002350| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002360| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 54 41 53 | | (TAS|
|00002370| 4b 29 0d 20 20 20 20 0d | 20 20 20 20 54 68 69 73 |K). .| This|
|00002380| 20 74 61 73 6b 20 22 7a | 6f 6f 6d 73 22 20 61 20 | task "z|ooms" a |
|00002390| 72 65 63 74 61 6e 67 6c | 65 20 69 6e 20 61 6e 64 |rectangl|e in and|
|000023a0| 20 6f 75 74 20 69 6e 20 | 61 20 77 69 6e 64 6f 77 | out in |a window|
|000023b0| 2e 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|000023c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023f0| 2d 2d 2a 2f 0d 0d 7a 6f | 6f 6d 65 72 28 29 0d 7b |--*/..zo|omer().{|
|00002400| 0d 57 69 6e 64 6f 77 50 | 74 72 20 77 70 74 72 3b |.WindowP|tr wptr;|
|00002410| 0d 52 65 63 74 20 20 20 | 20 20 20 6d 79 5f 72 65 |.Rect | my_re|
|00002420| 63 74 3b 0d 4d 73 67 20 | 20 20 20 20 20 20 6d 79 |ct;.Msg | my|
|00002430| 4d 73 67 3b 0d 69 6e 74 | 09 09 09 09 64 65 6c 74 |Msg;.int|....delt|
|00002440| 61 76 20 3d 20 31 2c 20 | 64 65 6c 74 61 68 20 3d |av = 1, |deltah =|
|00002450| 20 31 3b 0d 0d 09 2f 2a | 20 4f 70 65 6e 20 61 20 | 1;.../*| Open a |
|00002460| 6e 65 77 20 77 69 6e 64 | 6f 77 20 2a 2f 0d 09 0d |new wind|ow */...|
|00002470| 09 77 70 74 72 20 3d 20 | 4e 65 77 57 69 6e 64 6f |.wptr = |NewWindo|
|00002480| 77 28 30 2c 26 74 61 73 | 6b 52 65 63 74 5b 52 75 |w(0,&tas|kRect[Ru|
|00002490| 6e 54 61 73 6b 49 44 28 | 29 5d 2c 22 5c 70 5a 6f |nTaskID(|)],"\pZo|
|000024a0| 6f 6d 65 72 22 2c 31 2c | 30 2c 2d 31 2c 30 2c 30 |omer",1,|0,-1,0,0|
|000024b0| 29 3b 0d 20 20 53 65 74 | 50 6f 72 74 28 77 70 74 |);. Set|Port(wpt|
|000024c0| 72 29 3b 0d 0d 20 20 2f | 2a 20 22 54 61 67 22 20 |r);.. /|* "Tag" |
|000024d0| 74 68 65 20 77 69 6e 64 | 6f 77 20 77 69 74 68 20 |the wind|ow with |
|000024e0| 6f 75 72 20 74 61 73 6b | 20 6e 75 6d 62 65 72 20 |our task| number |
|000024f0| 2a 2f 0d 20 20 0d 20 20 | 53 65 74 57 52 65 66 43 |*/. . |SetWRefC|
|00002500| 6f 6e 28 77 70 74 72 2c | 20 52 75 6e 54 61 73 6b |on(wptr,| RunTask|
|00002510| 49 44 28 29 29 3b 0d 20 | 20 0d 09 6d 79 5f 72 65 |ID());. | ..my_re|
|00002520| 63 74 20 3d 20 77 70 74 | 72 2d 3e 70 6f 72 74 52 |ct = wpt|r->portR|
|00002530| 65 63 74 3b 0d 0d 20 20 | 2f 2a 20 52 75 6e 20 74 |ect;.. |/* Run t|
|00002540| 61 73 6b 20 75 6e 74 69 | 6c 20 6d 6f 75 73 65 20 |ask unti|l mouse |
|00002550| 62 75 74 74 6f 6e 20 69 | 73 20 70 72 65 73 73 65 |button i|s presse|
|00002560| 64 20 2a 2f 0d 20 20 0d | 20 20 77 68 69 6c 65 20 |d */. .| while |
|00002570| 28 52 75 6e 54 61 73 6b | 49 44 28 29 20 3c 20 6e |(RunTask|ID() < n|
|00002580| 75 6d 5f 74 61 73 6b 73 | 29 20 7b 0d 20 20 20 20 |um_tasks|) {. |
|00002590| 0d 09 09 2f 2a 20 43 68 | 65 63 6b 20 74 6f 20 73 |.../* Ch|eck to s|
|000025a0| 65 65 20 69 66 20 61 6e | 79 20 75 70 64 61 74 65 |ee if an|y update|
|000025b0| 20 65 76 65 6e 74 73 20 | 61 72 65 20 70 65 6e 64 | events |are pend|
|000025c0| 69 6e 67 20 66 6f 72 20 | 74 68 69 73 20 74 61 73 |ing for |this tas|
|000025d0| 6b 20 2a 2f 0d 09 09 0d | 09 09 69 66 20 28 47 65 |k */....|..if (Ge|
|000025e0| 74 4d 73 67 28 75 70 64 | 61 74 65 45 76 74 2c 20 |tMsg(upd|ateEvt, |
|000025f0| 26 6d 79 4d 73 67 29 20 | 21 3d 20 4e 4f 5f 4d 53 |&myMsg) |!= NO_MS|
|00002600| 47 29 20 7b 09 09 0d 09 | 09 09 42 65 67 69 6e 55 |G) {....|..BeginU|
|00002610| 70 64 61 74 65 28 77 70 | 74 72 29 3b 0d 09 09 09 |pdate(wp|tr);....|
|00002620| 45 72 61 73 65 52 65 63 | 74 28 26 77 70 74 72 2d |EraseRec|t(&wptr-|
|00002630| 3e 70 6f 72 74 52 65 63 | 74 29 3b 0d 09 09 09 45 |>portRec|t);....E|
|00002640| 6e 64 55 70 64 61 74 65 | 28 77 70 74 72 29 3b 0d |ndUpdate|(wptr);.|
|00002650| 09 09 7d 0d 09 09 0d 09 | 09 2f 2a 20 44 72 61 77 |..}.....|./* Draw|
|00002660| 20 74 68 65 20 72 65 63 | 74 61 6e 67 6c 65 2c 20 | the rec|tangle, |
|00002670| 73 75 73 70 65 6e 64 20 | 74 68 69 73 20 74 61 73 |suspend |this tas|
|00002680| 6b 2c 20 74 68 65 6e 20 | 65 72 61 73 65 20 74 68 |k, then |erase th|
|00002690| 65 20 72 65 63 74 61 6e | 67 6c 65 20 2a 2f 0d 09 |e rectan|gle */..|
|000026a0| 09 0d 09 09 46 72 61 6d | 65 52 65 63 74 28 26 6d |....Fram|eRect(&m|
|000026b0| 79 5f 72 65 63 74 29 3b | 0d 09 09 53 75 73 70 65 |y_rect);|...Suspe|
|000026c0| 6e 64 54 61 73 6b 28 29 | 3b 0d 09 09 45 72 61 73 |ndTask()|;...Eras|
|000026d0| 65 52 65 63 74 28 26 6d | 79 5f 72 65 63 74 29 3b |eRect(&m|y_rect);|
|000026e0| 0d 0d 09 09 2f 2a 20 52 | 65 73 69 7a 65 20 74 68 |..../* R|esize th|
|000026f0| 65 20 72 65 63 74 61 6e | 67 6c 65 2c 20 65 69 74 |e rectan|gle, eit|
|00002700| 68 65 72 20 6c 61 72 67 | 65 72 20 6f 72 20 73 6d |her larg|er or sm|
|00002710| 61 6c 6c 65 72 20 2a 2f | 0d 0d 20 20 20 20 49 6e |aller */|.. In|
|00002720| 73 65 74 52 65 63 74 28 | 26 6d 79 5f 72 65 63 74 |setRect(|&my_rect|
|00002730| 2c 20 64 65 6c 74 61 68 | 2c 20 64 65 6c 74 61 76 |, deltah|, deltav|
|00002740| 29 3b 0d 0d 09 09 2f 2a | 20 49 66 20 77 65 20 68 |);..../*| If we h|
|00002750| 61 76 65 20 7a 6f 6f 6d | 65 64 20 74 6f 20 74 68 |ave zoom|ed to th|
|00002760| 65 20 74 6f 70 20 6f 72 | 20 62 6f 74 74 6f 6d 2c |e top or| bottom,|
|00002770| 20 63 68 61 6e 67 65 20 | 74 68 65 20 64 69 72 65 | change |the dire|
|00002780| 63 74 69 6f 6e 20 6f 66 | 20 7a 6f 6f 6d 20 2a 2f |ction of| zoom */|
|00002790| 0d 09 09 0d 09 09 69 66 | 20 28 28 45 6d 70 74 79 |......if| ((Empty|
|000027a0| 52 65 63 74 28 26 6d 79 | 5f 72 65 63 74 29 29 20 |Rect(&my|_rect)) |
|000027b0| 7c 7c 0d 20 20 20 20 20 | 20 20 20 28 45 71 75 61 |||. | (Equa|
|000027c0| 6c 52 65 63 74 28 26 6d | 79 5f 72 65 63 74 2c 26 |lRect(&m|y_rect,&|
|000027d0| 28 77 70 74 72 2d 3e 70 | 6f 72 74 52 65 63 74 29 |(wptr->p|ortRect)|
|000027e0| 29 29 29 20 7b 0d 09 09 | 09 64 65 6c 74 61 76 20 |))) {...|.deltav |
|000027f0| 3d 20 2d 64 65 6c 74 61 | 76 3b 0d 09 09 09 64 65 |= -delta|v;....de|
|00002800| 6c 74 61 68 20 3d 20 2d | 64 65 6c 74 61 68 3b 0d |ltah = -|deltah;.|
|00002810| 09 09 7d 0d 09 7d 0d 20 | 20 20 20 0d 20 20 2f 2a |..}..}. | . /*|
|00002820| 20 52 65 6d 6f 76 65 20 | 74 68 65 20 77 69 6e 64 | Remove |the wind|
|00002830| 6f 77 20 77 68 65 6e 20 | 64 6f 6e 65 20 2a 2f 0d |ow when |done */.|
|00002840| 20 20 0d 20 20 44 69 73 | 70 6f 73 65 57 69 6e 64 | . Dis|poseWind|
|00002850| 6f 77 28 77 70 74 72 29 | 3b 0d 7d 0d 20 20 0d 2f |ow(wptr)|;.}. ./|
|00002860| 2a 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |*-------|--------|
|00002870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000028a0| 2d 0d 20 20 20 20 73 63 | 72 6f 6c 6c 65 72 28 29 |-. sc|roller()|
|000028b0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028c0| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|000028d0| 20 20 20 20 20 20 20 20 | 20 20 20 20 28 54 41 53 | | (TAS|
|000028e0| 4b 29 0d 20 20 20 20 0d | 20 20 20 20 54 68 69 73 |K). .| This|
|000028f0| 20 74 61 73 6b 20 73 63 | 72 6f 6c 6c 73 20 74 65 | task sc|rolls te|
|00002900| 78 74 20 69 6e 20 61 20 | 77 69 6e 64 6f 77 2e 0d |xt in a |window..|
|00002910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002930| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002940| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002950| 2a 2f 0d 0d 77 72 69 74 | 65 53 74 72 69 6e 67 28 |*/..writ|eString(|
|00002960| 73 74 72 69 6e 67 29 0d | 63 68 61 72 20 2a 73 74 |string).|char *st|
|00002970| 72 69 6e 67 3b 0d 7b 0d | 20 20 57 69 6e 64 6f 77 |ring;.{.| Window|
|00002980| 50 74 72 20 77 70 74 72 | 3b 0d 20 20 52 67 6e 48 |Ptr wptr|;. RgnH|
|00002990| 61 6e 64 6c 65 20 6d 79 | 5f 72 67 6e 3b 0d 0d 20 |andle my|_rgn;.. |
|000029a0| 20 2f 2a 20 57 72 69 74 | 65 20 74 65 78 74 20 74 | /* Writ|e text t|
|000029b0| 6f 20 74 68 65 20 77 69 | 6e 64 6f 77 20 61 6e 64 |o the wi|ndow and|
|000029c0| 20 73 63 72 6f 6c 6c 20 | 69 74 20 75 70 20 28 73 | scroll |it up (s|
|000029d0| 75 73 70 65 6e 64 69 6e | 67 20 69 6e 20 62 65 74 |uspendin|g in bet|
|000029e0| 77 65 65 6e 29 20 2a 2f | 0d 20 20 0d 20 20 6d 79 |ween) */|. . my|
|000029f0| 5f 72 67 6e 20 3d 20 4e | 65 77 52 67 6e 28 29 3b |_rgn = N|ewRgn();|
|00002a00| 0d 0d 09 47 65 74 50 6f | 72 74 28 26 77 70 74 72 |...GetPo|rt(&wptr|
|00002a10| 29 3b 0d 09 4d 6f 76 65 | 54 6f 28 77 70 74 72 2d |);..Move|To(wptr-|
|00002a20| 3e 70 6f 72 74 52 65 63 | 74 2e 6c 65 66 74 2c 0d |>portRec|t.left,.|
|00002a30| 09 09 09 09 20 77 70 74 | 72 2d 3e 70 6f 72 74 52 |.... wpt|r->portR|
|00002a40| 65 63 74 2e 62 6f 74 74 | 6f 6d 2d 34 29 3b 0d 20 |ect.bott|om-4);. |
|00002a50| 20 44 72 61 77 53 74 72 | 69 6e 67 28 73 74 72 69 | DrawStr|ing(stri|
|00002a60| 6e 67 29 3b 20 0d 20 20 | 53 63 72 6f 6c 6c 52 65 |ng); . |ScrollRe|
|00002a70| 63 74 28 26 77 70 74 72 | 2d 3e 70 6f 72 74 52 65 |ct(&wptr|->portRe|
|00002a80| 63 74 2c 30 2c 2d 31 32 | 2c 6d 79 5f 72 67 6e 29 |ct,0,-12|,my_rgn)|
|00002a90| 3b 0d 0d 20 20 44 69 73 | 70 6f 73 65 52 67 6e 28 |;.. Dis|poseRgn(|
|00002aa0| 6d 79 5f 72 67 6e 29 3b | 0d 7d 0d 09 0d 73 63 72 |my_rgn);|.}...scr|
|00002ab0| 6f 6c 6c 65 72 28 29 0d | 7b 0d 57 69 6e 64 6f 77 |oller().|{.Window|
|00002ac0| 50 74 72 20 77 70 74 72 | 3b 0d 4d 73 67 20 20 20 |Ptr wptr|;.Msg |
|00002ad0| 20 20 20 20 6d 79 4d 73 | 67 3b 0d 20 20 0d 09 2f | myMs|g;. ../|
|00002ae0| 2a 20 4f 70 65 6e 20 61 | 20 6e 65 77 20 77 69 6e |* Open a| new win|
|00002af0| 64 6f 77 20 2a 2f 0d 09 | 0d 09 77 70 74 72 20 3d |dow */..|..wptr =|
|00002b00| 20 4e 65 77 57 69 6e 64 | 6f 77 28 30 2c 26 74 61 | NewWind|ow(0,&ta|
|00002b10| 73 6b 52 65 63 74 5b 52 | 75 6e 54 61 73 6b 49 44 |skRect[R|unTaskID|
|00002b20| 28 29 5d 2c 22 5c 70 53 | 63 72 6f 6c 6c 65 72 22 |()],"\pS|croller"|
|00002b30| 2c 31 2c 30 2c 2d 31 2c | 30 2c 30 29 3b 0d 20 20 |,1,0,-1,|0,0);. |
|00002b40| 53 65 74 50 6f 72 74 28 | 77 70 74 72 29 3b 0d 0d |SetPort(|wptr);..|
|00002b50| 20 20 2f 2a 20 22 54 61 | 67 22 20 74 68 65 20 77 | /* "Ta|g" the w|
|00002b60| 69 6e 64 6f 77 20 77 69 | 74 68 20 6f 75 72 20 74 |indow wi|th our t|
|00002b70| 61 73 6b 20 6e 75 6d 62 | 65 72 20 2a 2f 0d 20 20 |ask numb|er */. |
|00002b80| 0d 20 20 53 65 74 57 52 | 65 66 43 6f 6e 28 77 70 |. SetWR|efCon(wp|
|00002b90| 74 72 2c 20 52 75 6e 54 | 61 73 6b 49 44 28 29 29 |tr, RunT|askID())|
|00002ba0| 3b 0d 20 20 0d 20 20 2f | 2a 20 52 75 6e 20 74 61 |;. . /|* Run ta|
|00002bb0| 73 6b 20 75 6e 74 69 6c | 20 6d 6f 75 73 65 20 62 |sk until| mouse b|
|00002bc0| 75 74 74 6f 6e 20 69 73 | 20 70 72 65 73 73 65 64 |utton is| pressed|
|00002bd0| 20 2a 2f 0d 20 20 0d 20 | 20 77 68 69 6c 65 20 28 | */. . | while (|
|00002be0| 52 75 6e 54 61 73 6b 49 | 44 28 29 20 3c 20 6e 75 |RunTaskI|D() < nu|
|00002bf0| 6d 5f 74 61 73 6b 73 29 | 20 7b 0d 20 20 0d 09 09 |m_tasks)| {. ...|
|00002c00| 2f 2a 20 43 68 65 63 6b | 20 74 6f 20 73 65 65 20 |/* Check| to see |
|00002c10| 69 66 20 61 6e 79 20 75 | 70 64 61 74 65 20 65 76 |if any u|pdate ev|
|00002c20| 65 6e 74 73 20 61 72 65 | 20 70 65 6e 64 69 6e 67 |ents are| pending|
|00002c30| 20 66 6f 72 20 74 68 69 | 73 20 74 61 73 6b 20 2a | for thi|s task *|
|00002c40| 2f 0d 09 09 0d 09 09 69 | 66 20 28 47 65 74 4d 73 |/......i|f (GetMs|
|00002c50| 67 28 75 70 64 61 74 65 | 45 76 74 2c 20 26 6d 79 |g(update|Evt, &my|
|00002c60| 4d 73 67 29 20 21 3d 20 | 4e 4f 5f 4d 53 47 29 20 |Msg) != |NO_MSG) |
|00002c70| 7b 09 09 0d 09 09 09 42 | 65 67 69 6e 55 70 64 61 |{......B|eginUpda|
|00002c80| 74 65 28 77 70 74 72 29 | 3b 0d 09 09 09 45 72 61 |te(wptr)|;....Era|
|00002c90| 73 65 52 65 63 74 28 26 | 77 70 74 72 2d 3e 70 6f |seRect(&|wptr->po|
|00002ca0| 72 74 52 65 63 74 29 3b | 0d 09 09 09 45 6e 64 55 |rtRect);|....EndU|
|00002cb0| 70 64 61 74 65 28 77 70 | 74 72 29 3b 0d 09 09 7d |pdate(wp|tr);...}|
|00002cc0| 0d 09 09 0d 09 09 2f 2a | 20 57 72 69 74 65 20 74 |....../*| Write t|
|00002cd0| 68 65 20 73 74 72 69 6e | 67 73 20 74 6f 20 74 68 |he strin|gs to th|
|00002ce0| 65 20 77 69 6e 64 6f 77 | 20 28 73 63 72 6f 6c 6c |e window| (scroll|
|00002cf0| 69 6e 67 20 65 61 63 68 | 20 74 69 6d 65 29 20 2a |ing each| time) *|
|00002d00| 2f 0d 09 09 0d 09 09 77 | 72 69 74 65 53 74 72 69 |/......w|riteStri|
|00002d10| 6e 67 28 73 74 72 69 6e | 67 31 29 3b 0d 09 09 77 |ng(strin|g1);...w|
|00002d20| 72 69 74 65 53 74 72 69 | 6e 67 28 73 74 72 69 6e |riteStri|ng(strin|
|00002d30| 67 32 29 3b 0d 09 09 77 | 72 69 74 65 53 74 72 69 |g2);...w|riteStri|
|00002d40| 6e 67 28 73 74 72 69 6e | 67 33 29 3b 0d 0d 09 20 |ng(strin|g3);... |
|00002d50| 20 53 75 73 70 65 6e 64 | 54 61 73 6b 28 29 3b 0d | Suspend|Task();.|
|00002d60| 09 7d 0d 20 20 20 20 0d | 20 20 2f 2a 20 52 65 6d |.}. .| /* Rem|
|00002d70| 6f 76 65 20 74 68 65 20 | 77 69 6e 64 6f 77 20 77 |ove the |window w|
|00002d80| 68 65 6e 20 64 6f 6e 65 | 20 2a 2f 0d 20 20 0d 20 |hen done| */. . |
|00002d90| 20 44 69 73 70 6f 73 65 | 57 69 6e 64 6f 77 28 77 | Dispose|Window(w|
|00002da0| 70 74 72 29 3b 0d 7d 0d | 0d 2f 2a 2d 2d 2d 2d 2d |ptr);.}.|./*-----|
|00002db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002de0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 20 20 20 20 |--------|---. |
|00002df0| 6d 61 73 74 65 72 28 29 | 20 20 20 20 20 20 20 20 |master()| |
|00002e00| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e10| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 20 20 20 | | |
|00002e20| 20 20 20 20 20 20 20 28 | 54 41 53 4b 29 0d 20 20 | (|TASK). |
|00002e30| 20 20 0d 20 20 20 20 54 | 68 69 73 20 69 73 20 74 | . T|his is t|
|00002e40| 68 65 20 22 6d 61 73 74 | 65 72 22 20 74 61 73 6b |he "mast|er" task|
|00002e50| 2e 20 49 74 20 69 73 20 | 74 68 65 20 74 61 73 6b |. It is |the task|
|00002e60| 20 74 68 61 74 20 69 73 | 20 66 69 72 73 74 0d 20 | that is| first. |
|00002e70| 20 20 20 73 74 61 72 74 | 65 64 20 61 6e 64 20 69 | start|ed and i|
|00002e80| 74 20 63 72 65 61 74 65 | 73 20 61 6c 6c 20 74 68 |t create|s all th|
|00002e90| 65 20 6f 74 68 65 72 20 | 74 61 73 6b 73 2e 20 49 |e other |tasks. I|
|00002ea0| 74 20 61 6c 73 6f 20 68 | 61 6e 64 6c 65 73 20 0d |t also h|andles .|
|00002eb0| 20 20 20 20 6d 65 6e 75 | 20 73 65 6c 65 63 74 69 | menu| selecti|
|00002ec0| 6f 6e 73 20 61 6e 64 20 | 64 65 73 6b 20 61 63 63 |ons and |desk acc|
|00002ed0| 65 73 73 6f 72 69 65 73 | 2e 0d 2d 2d 2d 2d 2d 2d |essories|..------|
|00002ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2a 2f 0d 0d 69 6e |--------|--*/..in|
|00002f20| 74 20 28 2a 74 61 73 6b | 5b 4d 41 58 54 41 53 4b |t (*task|[MAXTASK|
|00002f30| 54 59 50 45 53 5d 29 28 | 29 20 3d 20 7b 30 2c 20 |TYPES])(|) = {0, |
|00002f40| 26 62 6f 75 6e 63 65 72 | 2c 20 26 7a 6f 6f 6d 65 |&bouncer|, &zoome|
|00002f50| 72 2c 20 26 73 63 72 6f | 6c 6c 65 72 7d 3b 0d 0d |r, &scro|ller};..|
|00002f60| 6d 61 73 74 65 72 28 29 | 0d 7b 0d 45 76 65 6e 74 |master()|.{.Event|
|00002f70| 52 65 63 6f 72 64 20 6d | 79 45 76 65 6e 74 3b 0d |Record m|yEvent;.|
|00002f80| 50 72 6f 63 50 74 72 20 | 6f 6c 64 4a 47 4e 45 46 |ProcPtr |oldJGNEF|
|00002f90| 69 6c 74 65 72 3b 0d 50 | 72 6f 63 50 74 72 20 6f |ilter;.P|rocPtr o|
|00002fa0| 6c 64 4d 42 61 72 48 6f | 6f 6b 3b 0d 0d 09 2f 2a |ldMBarHo|ok;.../*|
|00002fb0| 20 49 6e 69 74 69 61 6c | 69 7a 65 20 74 68 65 20 | Initial|ize the |
|00002fc0| 6d 65 6e 75 73 20 2a 2f | 0d 09 0d 09 73 65 74 55 |menus */|....setU|
|00002fd0| 70 4d 65 6e 75 73 28 29 | 3b 0d 0d 09 2f 2a 20 52 |pMenus()|;.../* R|
|00002fe0| 65 70 6c 61 63 65 20 74 | 68 65 20 42 75 74 74 6f |eplace t|he Butto|
|00002ff0| 6e 20 74 72 61 70 20 77 | 69 74 68 20 6f 6e 65 20 |n trap w|ith one |
|00003000| 74 68 61 74 20 73 75 73 | 70 65 6e 64 73 20 73 6f |that sus|pends so|
|00003010| 20 6f 74 68 65 72 20 74 | 72 61 70 73 0d 09 09 20 | other t|raps... |
|00003020| 74 68 61 74 20 6c 6f 6f | 70 20 6f 6e 20 74 68 65 |that loo|p on the|
|00003030| 20 6d 6f 75 73 65 20 62 | 75 74 74 6f 6e 20 77 69 | mouse b|utton wi|
|00003040| 6c 6c 20 61 6c 6c 6f 77 | 20 74 68 65 20 6f 74 68 |ll allow| the oth|
|00003050| 65 72 20 74 61 73 6b 73 | 20 74 6f 20 72 75 6e 20 |er tasks| to run |
|00003060| 2a 2f 0d 09 0d 09 62 75 | 74 74 6f 6e 41 64 64 72 |*/....bu|ttonAddr|
|00003070| 20 3d 20 47 65 74 54 72 | 61 70 41 64 64 72 65 73 | = GetTr|apAddres|
|00003080| 73 28 42 55 54 54 4f 4e | 5f 54 52 41 50 5f 4e 4f |s(BUTTON|_TRAP_NO|
|00003090| 29 3b 0d 09 53 65 74 54 | 72 61 70 41 64 64 72 65 |);..SetT|rapAddre|
|000030a0| 73 73 28 6e 65 77 42 75 | 74 74 6f 6e 2c 20 42 55 |ss(newBu|tton, BU|
|000030b0| 54 54 4f 4e 5f 54 52 41 | 50 5f 4e 4f 29 3b 0d 09 |TTON_TRA|P_NO);..|
|000030c0| 0d 09 2f 2a 20 4d 61 6b | 65 20 47 65 74 4e 65 78 |../* Mak|e GetNex|
|000030d0| 74 45 76 65 6e 74 20 73 | 75 73 70 65 6e 64 20 74 |tEvent s|uspend t|
|000030e0| 68 65 20 72 75 6e 6e 69 | 6e 67 20 74 61 73 6b 20 |he runni|ng task |
|000030f0| 62 65 66 6f 72 65 20 65 | 61 63 68 20 65 76 65 6e |before e|ach even|
|00003100| 74 20 6f 63 63 75 72 73 | 0d 09 20 20 20 62 79 20 |t occurs|.. by |
|00003110| 72 65 70 6c 61 63 69 6e | 67 20 74 68 65 20 47 65 |replacin|g the Ge|
|00003120| 74 4e 65 78 74 45 76 65 | 6e 74 20 66 69 6c 74 65 |tNextEve|nt filte|
|00003130| 72 20 77 69 74 68 20 74 | 68 65 20 61 64 64 72 65 |r with t|he addre|
|00003140| 73 73 20 6f 66 20 53 75 | 73 70 65 6e 64 54 61 73 |ss of Su|spendTas|
|00003150| 6b 20 2a 2f 0d 09 0d 09 | 6f 6c 64 4a 47 4e 45 46 |k */....|oldJGNEF|
|00003160| 69 6c 74 65 72 20 3d 20 | 4a 47 4e 45 46 69 6c 74 |ilter = |JGNEFilt|
|00003170| 65 72 3b 0d 09 4a 47 4e | 45 46 69 6c 74 65 72 20 |er;..JGN|EFilter |
|00003180| 3d 20 53 75 73 70 65 6e | 64 54 61 73 6b 3b 0d 09 |= Suspen|dTask;..|
|00003190| 0d 09 2f 2a 20 49 6e 73 | 74 61 6c 6c 20 74 68 65 |../* Ins|tall the|
|000031a0| 20 6d 65 6e 75 44 6f 77 | 6e 20 72 6f 75 74 69 6e | menuDow|n routin|
|000031b0| 65 20 74 6f 20 22 70 61 | 74 63 68 22 20 41 70 70 |e to "pa|tch" App|
|000031c0| 6c 65 27 73 20 6d 65 6e | 75 20 6d 61 6e 61 67 65 |le's men|u manage|
|000031d0| 72 20 2a 2f 0d 09 0d 09 | 6f 6c 64 4d 42 61 72 48 |r */....|oldMBarH|
|000031e0| 6f 6f 6b 20 3d 20 4d 42 | 61 72 48 6f 6f 6b 3b 0d |ook = MB|arHook;.|
|000031f0| 09 4d 42 61 72 48 6f 6f | 6b 20 3d 20 6d 65 6e 75 |.MBarHoo|k = menu|
|00003200| 44 6f 77 6e 3b 0d 09 0d | 09 2f 2a 20 48 61 6e 64 |Down;...|./* Hand|
|00003210| 6c 65 20 65 61 63 68 20 | 65 76 65 6e 74 20 66 72 |le each |event fr|
|00003220| 6f 6d 20 74 68 65 20 75 | 73 65 72 20 75 6e 74 69 |om the u|ser unti|
|00003230| 6c 20 68 65 20 71 75 69 | 74 73 20 2a 2f 0d 09 0d |l he qui|ts */...|
|00003240| 09 77 68 69 6c 65 20 28 | 52 75 6e 54 61 73 6b 49 |.while (|RunTaskI|
|00003250| 44 28 29 20 3c 20 6e 75 | 6d 5f 74 61 73 6b 73 29 |D() < nu|m_tasks)|
|00003260| 20 7b 0d 09 09 53 79 73 | 74 65 6d 54 61 73 6b 28 | {...Sys|temTask(|
|00003270| 29 3b 09 09 09 09 09 09 | 09 09 09 09 09 09 09 0d |);......|........|
|00003280| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00003290| 09 09 09 09 09 09 0d 09 | 09 69 66 20 28 47 65 74 |........|.if (Get|
|000032a0| 4e 65 78 74 45 76 65 6e | 74 28 65 76 65 72 79 45 |NextEven|t(everyE|
|000032b0| 76 65 6e 74 2c 20 26 6d | 79 45 76 65 6e 74 29 29 |vent, &m|yEvent))|
|000032c0| 20 7b 0d 09 09 09 64 6f | 45 76 65 6e 74 28 26 6d | {....do|Event(&m|
|000032d0| 79 45 76 65 6e 74 29 3b | 0d 09 09 7d 0d 09 09 53 |yEvent);|...}...S|
|000032e0| 75 73 70 65 6e 64 54 61 | 73 6b 28 29 3b 0d 09 7d |uspendTa|sk();..}|
|000032f0| 09 0d 09 0d 09 2f 2a 20 | 55 6e 69 6e 73 74 61 6c |...../* |Uninstal|
|00003300| 6c 20 74 68 65 20 6d 65 | 6e 75 20 70 61 74 63 68 |l the me|nu patch|
|00003310| 20 72 6f 75 74 69 6e 65 | 73 20 2a 2f 0d 09 0d 09 | routine|s */....|
|00003320| 4d 42 61 72 48 6f 6f 6b | 20 3d 20 6f 6c 64 4d 42 |MBarHook| = oldMB|
|00003330| 61 72 48 6f 6f 6b 3b 0d | 09 0d 09 2f 2a 20 52 65 |arHook;.|.../* Re|
|00003340| 73 74 6f 72 65 20 74 68 | 65 20 6f 72 69 67 69 6e |store th|e origin|
|00003350| 61 6c 20 47 65 74 4e 65 | 78 74 45 76 65 6e 74 20 |al GetNe|xtEvent |
|00003360| 66 69 6c 74 65 72 20 61 | 64 64 72 65 73 73 20 2a |filter a|ddress *|
|00003370| 2f 0d 09 0d 09 4a 47 4e | 45 46 69 6c 74 65 72 20 |/....JGN|EFilter |
|00003380| 3d 20 6f 6c 64 4a 47 4e | 45 46 69 6c 74 65 72 3b |= oldJGN|EFilter;|
|00003390| 0d 09 0d 09 2f 2a 20 52 | 65 73 74 6f 72 65 20 74 |..../* R|estore t|
|000033a0| 68 65 20 6f 72 69 67 69 | 6e 61 6c 20 62 75 74 74 |he origi|nal butt|
|000033b0| 6f 6e 20 73 79 73 74 65 | 6d 20 63 61 6c 6c 20 2a |on syste|m call *|
|000033c0| 2f 0d 09 0d 09 53 65 74 | 54 72 61 70 41 64 64 72 |/....Set|TrapAddr|
|000033d0| 65 73 73 28 62 75 74 74 | 6f 6e 41 64 64 72 2c 20 |ess(butt|onAddr, |
|000033e0| 42 55 54 54 4f 4e 5f 54 | 52 41 50 5f 4e 4f 29 3b |BUTTON_T|RAP_NO);|
|000033f0| 0d 7d 0d 0d 2f 2a 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.}../*--|--------|
|00003400| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003410| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003420| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003430| 2d 2d 2d 2d 2d 2d 0d 20 | 20 20 20 73 65 74 55 70 |------. | setUp|
|00003440| 4d 65 6e 75 73 28 29 0d | 20 20 20 20 0d 20 20 20 |Menus().| . |
|00003450| 20 49 6e 69 74 69 61 6c | 69 7a 65 20 74 68 65 20 | Initial|ize the |
|00003460| 6d 65 6e 75 73 2e 0d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |menus..-|--------|
|00003470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034a0| 2d 2d 2d 2d 2d 2d 2d 2a | 2f 0d 73 65 74 55 70 4d |-------*|/.setUpM|
|000034b0| 65 6e 75 73 28 29 0d 7b | 0d 09 69 6e 74 09 09 69 |enus().{|..int..i|
|000034c0| 3b 0d 09 0d 09 2f 2a 20 | 49 6e 69 74 69 61 6c 69 |;..../* |Initiali|
|000034d0| 7a 65 20 74 68 65 20 6d | 65 6e 75 73 20 2a 2f 0d |ze the m|enus */.|
|000034e0| 09 0d 09 6d 65 6e 75 73 | 5b 41 50 50 4c 45 5d 20 |...menus|[APPLE] |
|000034f0| 3d 20 47 65 74 4d 65 6e | 75 28 41 50 50 4c 45 5f |= GetMen|u(APPLE_|
|00003500| 49 44 29 3b 0d 09 41 64 | 64 52 65 73 4d 65 6e 75 |ID);..Ad|dResMenu|
|00003510| 28 6d 65 6e 75 73 5b 41 | 50 50 4c 45 5d 2c 27 44 |(menus[A|PPLE],'D|
|00003520| 52 56 52 27 29 3b 0d 09 | 6d 65 6e 75 73 5b 46 49 |RVR');..|menus[FI|
|00003530| 4c 45 5d 20 3d 20 47 65 | 74 4d 65 6e 75 28 46 49 |LE] = Ge|tMenu(FI|
|00003540| 4c 45 5f 49 44 29 3b 0d | 09 6d 65 6e 75 73 5b 45 |LE_ID);.|.menus[E|
|00003550| 44 49 54 5d 20 3d 20 47 | 65 74 4d 65 6e 75 28 45 |DIT] = G|etMenu(E|
|00003560| 44 49 54 5f 49 44 29 3b | 0d 09 6d 65 6e 75 73 5b |DIT_ID);|..menus[|
|00003570| 54 41 53 4b 54 59 50 45 | 5d 20 3d 20 47 65 74 4d |TASKTYPE|] = GetM|
|00003580| 65 6e 75 28 54 41 53 4b | 54 59 50 45 5f 49 44 29 |enu(TASK|TYPE_ID)|
|00003590| 3b 0d 09 66 6f 72 20 28 | 69 3d 41 50 50 4c 45 3b |;..for (|i=APPLE;|
|000035a0| 20 69 3c 3d 54 41 53 4b | 54 59 50 45 3b 20 69 2b | i<=TASK|TYPE; i+|
|000035b0| 2b 29 0d 09 09 49 6e 73 | 65 72 74 4d 65 6e 75 28 |+)...Ins|ertMenu(|
|000035c0| 6d 65 6e 75 73 5b 69 5d | 2c 20 30 29 20 3b 0d 09 |menus[i]|, 0) ;..|
|000035d0| 44 72 61 77 4d 65 6e 75 | 42 61 72 28 29 3b 0d 09 |DrawMenu|Bar();..|
|000035e0| 0d 09 43 68 65 63 6b 49 | 74 65 6d 28 6d 65 6e 75 |..CheckI|tem(menu|
|000035f0| 73 5b 54 41 53 4b 54 59 | 50 45 5d 2c 74 61 73 6b |s[TASKTY|PE],task|
|00003600| 5f 74 79 70 65 2c 54 52 | 55 45 29 3b 0d 7d 0d 0d |_type,TR|UE);.}..|
|00003610| 2f 2a 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/*------|--------|
|00003620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003650| 2d 2d 0d 20 20 20 20 64 | 6f 45 76 65 6e 74 28 29 |--. d|oEvent()|
|00003660| 0d 20 20 20 20 0d 20 20 | 20 20 48 61 6e 64 6c 65 |. . | Handle|
|00003670| 20 75 73 65 72 20 65 76 | 65 6e 74 73 2e 0d 2d 2d | user ev|ents..--|
|00003680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2a 2f |--------|------*/|
|000036c0| 0d 64 6f 45 76 65 6e 74 | 28 65 76 65 6e 74 29 0d |.doEvent|(event).|
|000036d0| 09 45 76 65 6e 74 52 65 | 63 6f 72 64 20 2a 65 76 |.EventRe|cord *ev|
|000036e0| 65 6e 74 3b 0d 09 7b 0d | 09 57 69 6e 64 6f 77 50 |ent;..{.|.WindowP|
|000036f0| 65 65 6b 20 77 68 69 63 | 68 57 69 6e 64 6f 77 3b |eek whic|hWindow;|
|00003700| 0d 09 0d 09 2f 2a 20 48 | 61 6e 64 6c 65 20 61 20 |..../* H|andle a |
|00003710| 75 73 65 72 20 65 76 65 | 6e 74 20 2a 2f 0d 09 0d |user eve|nt */...|
|00003720| 09 73 77 69 74 63 68 20 | 28 65 76 65 6e 74 2d 3e |.switch |(event->|
|00003730| 77 68 61 74 29 20 7b 0d | 09 09 0d 09 09 2f 2a 20 |what) {.|...../* |
|00003740| 48 61 6e 64 6c 65 20 6d | 6f 75 73 65 20 64 6f 77 |Handle m|ouse dow|
|00003750| 6e 20 65 76 65 6e 74 73 | 20 2a 2f 0d 09 09 09 0d |n events| */.....|
|00003760| 09 09 63 61 73 65 20 6d | 6f 75 73 65 44 6f 77 6e |..case m|ouseDown|
|00003770| 3a 0d 09 09 09 0d 09 09 | 09 73 77 69 74 63 68 20 |:.......|.switch |
|00003780| 28 46 69 6e 64 57 69 6e | 64 6f 77 28 65 76 65 6e |(FindWin|dow(even|
|00003790| 74 2d 3e 77 68 65 72 65 | 2c 20 26 77 68 69 63 68 |t->where|, &which|
|000037a0| 57 69 6e 64 6f 77 20 29 | 29 20 7b 0d 09 09 09 0d |Window )|) {.....|
|000037b0| 09 09 09 2f 2a 20 48 61 | 6e 64 6c 65 20 75 73 65 |.../* Ha|ndle use|
|000037c0| 72 20 6d 65 6e 75 20 73 | 65 6c 65 63 74 69 6f 6e |r menu s|election|
|000037d0| 73 20 2a 2f 0d 09 09 09 | 0d 09 09 09 09 63 61 73 |s */....|.....cas|
|000037e0| 65 20 69 6e 4d 65 6e 75 | 42 61 72 3a 0d 09 09 09 |e inMenu|Bar:....|
|000037f0| 09 09 64 6f 4d 65 6e 75 | 28 4d 65 6e 75 53 65 6c |..doMenu|(MenuSel|
|00003800| 65 63 74 28 65 76 65 6e | 74 2d 3e 77 68 65 72 65 |ect(even|t->where|
|00003810| 29 29 3b 0d 09 09 09 09 | 09 62 72 65 61 6b 3b 0d |));.....|.break;.|
|00003820| 0d 09 09 09 2f 2a 20 48 | 61 6e 64 6c 65 20 64 65 |..../* H|andle de|
|00003830| 73 6b 20 61 63 63 65 73 | 73 6f 72 69 65 73 20 2a |sk acces|sories *|
|00003840| 2f 0d 09 09 09 0d 09 09 | 09 09 63 61 73 65 20 69 |/.......|..case i|
|00003850| 6e 53 79 73 57 69 6e 64 | 6f 77 3a 0d 09 09 09 09 |nSysWind|ow:.....|
|00003860| 09 53 79 73 74 65 6d 43 | 6c 69 63 6b 28 65 76 65 |.SystemC|lick(eve|
|00003870| 6e 74 2c 20 77 68 69 63 | 68 57 69 6e 64 6f 77 20 |nt, whic|hWindow |
|00003880| 29 3b 0d 09 09 09 09 09 | 62 72 65 61 6b 3b 0d 09 |);......|break;..|
|00003890| 09 09 09 64 65 66 61 75 | 6c 74 3a 20 3b 0d 09 09 |...defau|lt: ;...|
|000038a0| 09 7d 0d 09 09 09 62 72 | 65 61 6b 3b 0d 09 09 09 |.}....br|eak;....|
|000038b0| 0d 09 09 2f 2a 20 48 61 | 6e 64 6c 65 20 75 73 65 |.../* Ha|ndle use|
|000038c0| 72 20 6b 65 79 20 70 72 | 65 73 73 65 73 20 2a 2f |r key pr|esses */|
|000038d0| 0d 09 09 09 0d 09 09 63 | 61 73 65 20 6b 65 79 44 |.......c|ase keyD|
|000038e0| 6f 77 6e 3a 0d 09 09 63 | 61 73 65 20 61 75 74 6f |own:...c|ase auto|
|000038f0| 4b 65 79 3a 20 0d 09 09 | 09 7b 0d 09 09 09 72 65 |Key: ...|.{....re|
|00003900| 67 69 73 74 65 72 20 63 | 68 61 72 09 74 68 65 43 |gister c|har.theC|
|00003910| 68 61 72 3b 0d 09 09 09 | 0d 09 09 09 2f 2a 20 41 |har;....|..../* A|
|00003920| 6c 6c 6f 77 20 75 73 65 | 72 20 6d 65 6e 75 20 73 |llow use|r menu s|
|00003930| 65 6c 65 63 74 69 6f 6e | 73 20 66 72 6f 6d 20 74 |election|s from t|
|00003940| 68 65 20 6b 65 79 62 6f | 61 72 64 20 2a 2f 0d 09 |he keybo|ard */..|
|00003950| 09 09 0d 09 09 09 74 68 | 65 43 68 61 72 20 3d 20 |......th|eChar = |
|00003960| 65 76 65 6e 74 2d 3e 6d | 65 73 73 61 67 65 20 26 |event->m|essage &|
|00003970| 20 63 68 61 72 43 6f 64 | 65 4d 61 73 6b 3b 0d 09 | charCod|eMask;..|
|00003980| 09 09 69 66 20 28 28 65 | 76 65 6e 74 2d 3e 6d 6f |..if ((e|vent->mo|
|00003990| 64 69 66 69 65 72 73 20 | 26 20 63 6d 64 4b 65 79 |difiers |& cmdKey|
|000039a0| 29 20 21 3d 20 30 29 20 | 0d 09 09 09 09 64 6f 4d |) != 0) |.....doM|
|000039b0| 65 6e 75 28 4d 65 6e 75 | 4b 65 79 28 74 68 65 43 |enu(Menu|Key(theC|
|000039c0| 68 61 72 29 29 3b 0d 09 | 09 09 7d 0d 09 09 09 62 |har));..|..}....b|
|000039d0| 72 65 61 6b 3b 0d 09 09 | 09 0d 09 09 2f 2a 20 48 |reak;...|..../* H|
|000039e0| 61 6e 64 6c 65 20 75 70 | 64 61 74 65 20 65 76 65 |andle up|date eve|
|000039f0| 6e 74 73 2e 20 53 65 6e | 64 20 74 68 65 20 75 70 |nts. Sen|d the up|
|00003a00| 64 61 74 65 20 65 76 65 | 6e 74 20 74 6f 20 74 68 |date eve|nt to th|
|00003a10| 65 20 70 72 6f 70 65 72 | 20 74 61 73 6b 20 0d 09 |e proper| task ..|
|00003a20| 09 20 20 20 73 6f 20 74 | 68 61 74 20 69 74 20 63 |. so t|hat it c|
|00003a30| 61 6e 20 75 70 64 61 74 | 65 20 69 74 27 73 20 77 |an updat|e it's w|
|00003a40| 69 6e 64 6f 77 20 61 63 | 63 6f 72 64 69 6e 67 6c |indow ac|cordingl|
|00003a50| 79 20 2a 2f 0d 09 09 09 | 0d 09 09 63 61 73 65 20 |y */....|...case |
|00003a60| 75 70 64 61 74 65 45 76 | 74 3a 0d 09 09 09 77 68 |updateEv|t:....wh|
|00003a70| 69 63 68 57 69 6e 64 6f | 77 20 3d 20 28 57 69 6e |ichWindo|w = (Win|
|00003a80| 64 6f 77 50 65 65 6b 29 | 65 76 65 6e 74 2d 3e 6d |dowPeek)|event->m|
|00003a90| 65 73 73 61 67 65 3b 0d | 09 09 09 0d 09 09 09 69 |essage;.|.......i|
|00003aa0| 66 20 28 77 68 69 63 68 | 57 69 6e 64 6f 77 2d 3e |f (which|Window->|
|00003ab0| 77 69 6e 64 6f 77 4b 69 | 6e 64 20 3d 3d 20 75 73 |windowKi|nd == us|
|00003ac0| 65 72 4b 69 6e 64 29 0d | 09 09 09 09 53 65 6e 64 |erKind).|....Send|
|00003ad0| 4d 73 67 28 75 70 64 61 | 74 65 45 76 74 2c 20 30 |Msg(upda|teEvt, 0|
|00003ae0| 4c 2c 20 28 69 6e 74 29 | 47 65 74 57 52 65 66 43 |L, (int)|GetWRefC|
|00003af0| 6f 6e 28 77 68 69 63 68 | 57 69 6e 64 6f 77 29 29 |on(which|Window))|
|00003b00| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 0d 09 09 64 |;....bre|ak;....d|
|00003b10| 65 66 61 75 6c 74 3a 20 | 3b 0d 09 7d 0d 09 0d 09 |efault: |;..}....|
|00003b20| 72 65 74 75 72 6e 28 30 | 29 3b 0d 7d 0d 0d 2f 2a |return(0|);.}../*|
|00003b30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003b70| 0d 20 20 20 20 64 6f 4d | 65 6e 75 28 29 0d 20 20 |. doM|enu(). |
|00003b80| 20 20 0d 20 20 20 20 48 | 61 6e 64 6c 65 20 6d 65 | . H|andle me|
|00003b90| 6e 75 20 73 65 6c 65 63 | 74 69 6f 6e 73 2e 0d 2d |nu selec|tions..-|
|00003ba0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2a |--------|-------*|
|00003be0| 2f 0d 64 6f 4d 65 6e 75 | 28 6d 65 6e 75 52 65 73 |/.doMenu|(menuRes|
|00003bf0| 75 6c 74 29 0d 6c 6f 6e | 67 20 6d 65 6e 75 52 65 |ult).lon|g menuRe|
|00003c00| 73 75 6c 74 3b 0d 7b 0d | 69 6e 74 09 09 20 20 20 |sult;.{.|int.. |
|00003c10| 20 20 74 68 65 49 74 65 | 6d 3b 0d 53 74 72 32 35 | theIte|m;.Str25|
|00003c20| 35 09 20 20 20 6e 61 6d | 65 3b 0d 0d 09 6d 65 6e |5. nam|e;...men|
|00003c30| 75 55 70 28 29 3b 0d 09 | 0d 09 74 68 65 49 74 65 |uUp();..|..theIte|
|00003c40| 6d 20 3d 20 4c 6f 57 6f | 72 64 28 6d 65 6e 75 52 |m = LoWo|rd(menuR|
|00003c50| 65 73 75 6c 74 29 3b 0d | 09 0d 09 2f 2a 20 48 61 |esult);.|.../* Ha|
|00003c60| 6e 64 6c 65 20 6d 65 6e | 75 20 73 65 6c 65 63 74 |ndle men|u select|
|00003c70| 69 6f 6e 73 20 2a 2f 0d | 09 0d 09 73 77 69 74 63 |ions */.|...switc|
|00003c80| 68 20 28 48 69 57 6f 72 | 64 28 6d 65 6e 75 52 65 |h (HiWor|d(menuRe|
|00003c90| 73 75 6c 74 29 29 20 7b | 0d 09 0d 09 09 2f 2a 20 |sult)) {|...../* |
|00003ca0| 4f 70 65 6e 20 64 65 73 | 6b 20 61 63 63 65 73 73 |Open des|k access|
|00003cb0| 6f 72 69 65 73 20 66 6f | 72 20 74 68 65 20 75 73 |ories fo|r the us|
|00003cc0| 65 72 20 2a 2f 0d 09 09 | 0d 09 09 63 61 73 65 20 |er */...|...case |
|00003cd0| 41 50 50 4c 45 5f 49 44 | 3a 0d 09 09 09 47 65 74 |APPLE_ID|:....Get|
|00003ce0| 49 74 65 6d 28 6d 65 6e | 75 73 5b 41 50 50 4c 45 |Item(men|us[APPLE|
|00003cf0| 5d 2c 74 68 65 49 74 65 | 6d 2c 26 6e 61 6d 65 29 |],theIte|m,&name)|
|00003d00| 3b 0d 09 09 09 4f 70 65 | 6e 44 65 73 6b 41 63 63 |;....Ope|nDeskAcc|
|00003d10| 28 26 6e 61 6d 65 29 3b | 0d 09 09 09 62 72 65 61 |(&name);|....brea|
|00003d20| 6b 3b 0d 09 09 0d 09 09 | 2f 2a 20 48 61 6e 64 6c |k;......|/* Handl|
|00003d30| 65 20 46 69 6c 65 20 6d | 65 6e 75 20 73 65 6c 65 |e File m|enu sele|
|00003d40| 63 74 69 6f 6e 73 20 2a | 2f 0d 09 09 0d 09 09 63 |ctions *|/......c|
|00003d50| 61 73 65 20 46 49 4c 45 | 5f 49 44 3a 20 0d 09 09 |ase FILE|_ID: ...|
|00003d60| 09 64 6f 46 69 6c 65 28 | 74 68 65 49 74 65 6d 29 |.doFile(|theItem)|
|00003d70| 3b 0d 09 09 09 62 72 65 | 61 6b 3b 0d 09 09 09 0d |;....bre|ak;.....|
|00003d80| 09 09 2f 2a 20 44 6f 6e | 27 74 20 64 6f 20 61 6e |../* Don|'t do an|
|00003d90| 79 74 68 69 6e 67 20 6f | 6e 20 45 64 69 74 20 6d |ything o|n Edit m|
|00003da0| 65 6e 75 20 73 65 6c 65 | 63 74 69 6f 6e 73 20 2a |enu sele|ctions *|
|00003db0| 2f 0d 09 09 0d 09 09 63 | 61 73 65 20 45 44 49 54 |/......c|ase EDIT|
|00003dc0| 5f 49 44 3a 20 0d 09 09 | 09 53 79 73 42 65 65 70 |_ID: ...|.SysBeep|
|00003dd0| 28 31 29 3b 0d 09 09 09 | 62 72 65 61 6b 3b 0d 09 |(1);....|break;..|
|00003de0| 09 09 0d 09 09 2f 2a 20 | 53 65 6c 65 63 74 20 74 |...../* |Select t|
|00003df0| 68 65 20 74 61 73 6b 20 | 74 79 70 65 20 6f 6e 20 |he task |type on |
|00003e00| 54 61 73 6b 54 79 70 65 | 20 6d 65 6e 75 20 73 65 |TaskType| menu se|
|00003e10| 6c 65 63 74 69 6f 6e 73 | 20 2a 2f 0d 09 09 0d 09 |lections| */.....|
|00003e20| 09 63 61 73 65 20 54 41 | 53 4b 54 59 50 45 5f 49 |.case TA|SKTYPE_I|
|00003e30| 44 3a 20 0d 09 09 09 43 | 68 65 63 6b 49 74 65 6d |D: ....C|heckItem|
|00003e40| 28 6d 65 6e 75 73 5b 54 | 41 53 4b 54 59 50 45 5d |(menus[T|ASKTYPE]|
|00003e50| 2c 74 61 73 6b 5f 74 79 | 70 65 2c 46 41 4c 53 45 |,task_ty|pe,FALSE|
|00003e60| 29 3b 0d 09 09 09 43 68 | 65 63 6b 49 74 65 6d 28 |);....Ch|eckItem(|
|00003e70| 6d 65 6e 75 73 5b 54 41 | 53 4b 54 59 50 45 5d 2c |menus[TA|SKTYPE],|
|00003e80| 74 61 73 6b 5f 74 79 70 | 65 20 3d 20 74 68 65 49 |task_typ|e = theI|
|00003e90| 74 65 6d 2c 54 52 55 45 | 29 3b 0d 09 09 09 62 72 |tem,TRUE|);....br|
|00003ea0| 65 61 6b 3b 0d 09 09 09 | 0d 09 09 64 65 66 61 75 |eak;....|...defau|
|00003eb0| 6c 74 3a 20 0d 09 09 09 | 62 72 65 61 6b 3b 0d 09 |lt: ....|break;..|
|00003ec0| 7d 0d 09 0d 09 48 69 6c | 69 74 65 4d 65 6e 75 28 |}....Hil|iteMenu(|
|00003ed0| 30 29 3b 0d 09 72 65 74 | 75 72 6e 28 31 29 3b 0d |0);..ret|urn(1);.|
|00003ee0| 7d 0d 0d 2f 2a 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |}../*---|--------|
|00003ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f20| 2d 2d 2d 2d 2d 0d 20 20 | 20 20 64 6f 46 69 6c 65 |-----. | doFile|
|00003f30| 28 29 0d 20 20 20 20 0d | 20 20 20 20 48 61 6e 64 |(). .| Hand|
|00003f40| 6c 65 20 22 46 69 6c 65 | 22 20 6d 65 6e 75 20 73 |le "File|" menu s|
|00003f50| 65 6c 65 63 74 69 6f 6e | 73 2e 0d 2d 2d 2d 2d 2d |election|s..-----|
|00003f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2a 2f 0d 64 6f |--------|---*/.do|
|00003fa0| 46 69 6c 65 28 69 74 65 | 6d 29 0d 69 6e 74 20 69 |File(ite|m).int i|
|00003fb0| 74 65 6d 3b 0d 7b 0d 0d | 09 2f 2a 20 48 61 6e 64 |tem;.{..|./* Hand|
|00003fc0| 6c 65 20 46 69 6c 65 20 | 6d 65 6e 75 20 73 65 6c |le File |menu sel|
|00003fd0| 63 74 69 6f 6e 73 20 2a | 2f 0d 09 0d 09 73 77 69 |ctions *|/....swi|
|00003fe0| 74 63 68 20 28 69 74 65 | 6d 29 20 7b 0d 09 0d 09 |tch (ite|m) {....|
|00003ff0| 09 2f 2a 20 53 74 61 72 | 74 20 61 20 6e 65 77 20 |./* Star|t a new |
|00004000| 74 61 73 6b 20 6f 6e 20 | 4e 65 77 20 61 6e 64 20 |task on |New and |
|00004010| 4f 70 65 6e 20 69 74 65 | 6d 73 20 28 38 4b 20 73 |Open ite|ms (8K s|
|00004020| 74 61 63 6b 29 20 2a 2f | 0d 09 09 0d 09 09 63 61 |tack) */|......ca|
|00004030| 73 65 20 4e 45 57 3a 0d | 09 09 63 61 73 65 20 4f |se NEW:.|..case O|
|00004040| 50 45 4e 3a 0d 09 09 09 | 69 66 20 28 6e 75 6d 5f |PEN:....|if (num_|
|00004050| 74 61 73 6b 73 20 3c 20 | 4d 41 58 54 41 53 4b 53 |tasks < |MAXTASKS|
|00004060| 29 0d 09 09 09 09 4e 65 | 77 54 61 73 6b 28 6e 75 |).....Ne|wTask(nu|
|00004070| 6d 5f 74 61 73 6b 73 2b | 2b 2c 20 74 61 73 6b 5b |m_tasks+|+, task[|
|00004080| 74 61 73 6b 5f 74 79 70 | 65 5d 2c 20 38 30 30 30 |task_typ|e], 8000|
|00004090| 2c 20 6d 79 53 77 61 70 | 50 72 6f 63 29 3b 0d 09 |, mySwap|Proc);..|
|000040a0| 09 09 65 6c 73 65 0d 09 | 09 09 09 53 79 73 42 65 |..else..|...SysBe|
|000040b0| 65 70 28 31 29 3b 0d 09 | 09 09 62 72 65 61 6b 3b |ep(1);..|..break;|
|000040c0| 0d 09 09 09 0d 09 09 2f | 2a 20 53 74 6f 70 20 61 |......./|* Stop a|
|000040d0| 20 74 61 73 6b 20 6f 6e | 20 61 20 43 6c 6f 73 65 | task on| a Close|
|000040e0| 20 69 74 65 6d 20 2a 2f | 0d 0d 09 09 63 61 73 65 | item */|....case|
|000040f0| 20 43 4c 4f 53 45 3a 0d | 09 09 09 6e 75 6d 5f 74 | CLOSE:.|...num_t|
|00004100| 61 73 6b 73 2d 2d 3b 0d | 09 09 09 62 72 65 61 6b |asks--;.|...break|
|00004110| 3b 0d 09 09 09 0d 09 09 | 2f 2a 20 53 74 6f 70 20 |;.......|/* Stop |
|00004120| 61 6c 6c 20 74 61 73 6b | 73 20 6f 6e 20 61 20 51 |all task|s on a Q|
|00004130| 75 69 74 20 69 74 65 6d | 20 2a 2f 0d 0d 09 09 63 |uit item| */....c|
|00004140| 61 73 65 20 51 55 49 54 | 3a 20 0d 09 09 09 6e 75 |ase QUIT|: ....nu|
|00004150| 6d 5f 74 61 73 6b 73 20 | 3d 20 30 3b 0d 09 09 09 |m_tasks |= 0;....|
|00004160| 62 72 65 61 6b 3b 0d 09 | 09 09 0d 09 09 64 65 66 |break;..|.....def|
|00004170| 61 75 6c 74 3a 0d 09 09 | 09 53 79 73 42 65 65 70 |ault:...|.SysBeep|
|00004180| 28 31 29 3b 0d 09 7d 0d | 09 09 0d 09 72 65 74 75 |(1);..}.|....retu|
|00004190| 72 6e 28 30 29 3b 0d 7d | 0d 0d 2f 2a 2d 2d 2d 2d |rn(0);.}|../*----|
|000041a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000041b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000041c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000041d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 20 20 20 |--------|----. |
|000041e0| 20 6d 61 69 6e 28 29 0d | 20 20 20 20 0d 20 20 20 | main().| . |
|000041f0| 20 44 6f 20 4d 61 63 20 | 69 6e 69 74 69 61 6c 69 | Do Mac |initiali|
|00004200| 7a 61 74 69 6f 6e 2e 20 | 53 74 61 72 74 20 75 70 |zation. |Start up|
|00004210| 20 74 68 65 20 6d 61 73 | 74 65 72 20 74 61 73 6b | the mas|ter task|
|00004220| 2e 0d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..------|--------|
|00004230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004260| 2d 2d 2a 2f 0d 0d 6d 61 | 69 6e 28 29 0d 7b 0d 69 |--*/..ma|in().{.i|
|00004270| 6e 74 20 65 72 72 3b 0d | 09 0d 09 2f 2a 20 49 6e |nt err;.|.../* In|
|00004280| 69 74 20 74 68 65 20 4d | 61 63 20 2a 2f 0d 09 0d |it the M|ac */...|
|00004290| 09 49 6e 69 74 47 72 61 | 66 28 26 74 68 65 50 6f |.InitGra|f(&thePo|
|000042a0| 72 74 29 3b 0d 09 49 6e | 69 74 57 69 6e 64 6f 77 |rt);..In|itWindow|
|000042b0| 73 28 29 3b 0d 09 49 6e | 69 74 46 6f 6e 74 73 28 |s();..In|itFonts(|
|000042c0| 29 3b 0d 09 49 6e 69 74 | 4d 65 6e 75 73 28 29 3b |);..Init|Menus();|
|000042d0| 0d 09 54 45 49 6e 69 74 | 28 29 3b 0d 09 49 6e 69 |..TEInit|();..Ini|
|000042e0| 74 44 69 61 6c 6f 67 73 | 28 4e 55 4c 4c 29 3b 0d |tDialogs|(NULL);.|
|000042f0| 0d 20 20 2f 2a 20 49 6e | 69 74 20 54 61 73 6b 65 |. /* In|it Taske|
|00004300| 72 20 77 69 74 68 20 34 | 34 4b 20 6f 66 20 73 74 |r with 4|4K of st|
|00004310| 61 63 6b 20 73 70 61 63 | 65 20 2a 2f 0d 20 20 0d |ack spac|e */. .|
|00004320| 20 20 49 6e 69 74 54 61 | 73 6b 73 28 34 34 30 30 | InitTa|sks(4400|
|00004330| 30 4c 29 3b 20 20 20 20 | 20 20 20 20 20 20 20 20 |0L); | |
|00004340| 20 20 20 20 20 20 0d 20 | 20 0d 09 4d 61 78 41 70 | . | ..MaxAp|
|00004350| 70 6c 5a 6f 6e 65 28 29 | 3b 0d 20 20 49 6e 69 74 |plZone()|;. Init|
|00004360| 43 75 72 73 6f 72 28 29 | 3b 0d 0d 09 2f 2a 20 47 |Cursor()|;.../* G|
|00004370| 65 74 20 72 69 64 20 6f | 66 20 70 72 65 76 69 6f |et rid o|f previo|
|00004380| 75 73 20 65 76 65 6e 74 | 73 09 09 2a 2f 20 0d 09 |us event|s..*/ ..|
|00004390| 09 20 20 09 09 0d 09 46 | 6c 75 73 68 45 76 65 6e |. ....F|lushEven|
|000043a0| 74 73 28 65 76 65 72 79 | 45 76 65 6e 74 2c 30 29 |ts(every|Event,0)|
|000043b0| 3b 0d 0d 09 2f 2a 20 43 | 72 65 61 74 65 20 74 68 |;.../* C|reate th|
|000043c0| 65 20 6d 61 73 74 65 72 | 20 74 61 73 6b 20 28 38 |e master| task (8|
|000043d0| 4b 20 73 74 61 63 6b 29 | 20 2a 2f 0d 09 0d 09 6e |K stack)| */....n|
|000043e0| 75 6d 5f 74 61 73 6b 73 | 20 3d 20 31 3b 0d 09 4e |um_tasks| = 1;..N|
|000043f0| 65 77 54 61 73 6b 28 30 | 2c 20 6d 61 73 74 65 72 |ewTask(0|, master|
|00004400| 2c 20 38 30 30 30 2c 20 | 6d 79 53 77 61 70 50 72 |, 8000, |mySwapPr|
|00004410| 6f 63 29 3b 0d 0d 20 20 | 2f 2a 20 53 74 61 72 74 |oc);.. |/* Start|
|00004420| 20 75 70 20 74 68 65 20 | 74 61 73 6b 20 73 63 68 | up the |task sch|
|00004430| 65 64 75 6c 65 72 20 09 | 2a 2f 0d 20 20 20 20 20 |eduler .|*/. |
|00004440| 20 20 20 20 20 20 20 20 | 0d 20 20 69 66 20 28 65 | |. if (e|
|00004450| 72 72 20 3d 20 53 74 61 | 72 74 53 63 68 65 64 28 |rr = Sta|rtSched(|
|00004460| 29 29 0d 09 09 53 79 73 | 42 65 65 70 28 31 29 3b |))...Sys|Beep(1);|
|00004470| 0d 7d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |.}......|........|
|00004480| 00 00 01 00 00 00 01 16 | 00 00 00 16 00 00 00 46 |........|.......F|
|00004490| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000044a0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000044b0| 1a 31 2e 20 44 44 45 78 | 70 61 6e 64 45 78 70 61 |.1. DDEx|pandExpa|
|000044c0| 6e 64 54 65 6d 70 46 69 | 6c 65 20 78 02 00 00 00 |ndTempFi|le x....|
|000044d0| 00 00 44 44 54 4d 44 44 | 41 50 01 00 00 00 00 00 |..DDTMDD|AP......|
|000044e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000044f0| 00 00 a5 f4 cd c8 00 00 | 43 f2 00 00 01 5c ff ff |........|C....\..|
|00004500| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004510| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004520| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004530| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004540| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004550| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004560| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004570| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00004580| 00 00 00 04 00 06 00 02 | 00 00 00 0a 00 09 06 4d |........|.......M|
|00004590| 6f 6e 61 63 6f 00 00 00 | 01 00 00 00 01 16 00 00 |onaco...|........|
|000045a0| 00 16 00 00 00 46 00 02 | c7 b2 01 d8 00 00 00 1c |.....F..|........|
|000045b0| 00 46 00 01 45 54 41 42 | 00 00 00 12 45 46 4e 54 |.F..ETAB|....EFNT|
|000045c0| 00 00 00 1e 03 ec ff ff | 00 00 00 00 00 02 c7 16 |........|........|
|000045d0| 03 eb ff ff 00 00 00 08 | 00 02 c7 12 00 00 00 00 |........|........|
|000045e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000045f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+